remove translation report from readme
This commit is contained in:
parent
467cd41bd3
commit
e3111431aa
3 changed files with 2 additions and 92 deletions
30
README.md
vendored
30
README.md
vendored
|
@ -124,35 +124,7 @@ Lemmy is free, open-source software, meaning no advertising, monetizing, or vent
|
||||||
|
|
||||||
### Translations
|
### Translations
|
||||||
|
|
||||||
If you'd like to add translations, take a look at the [English translation file](ui/assets/translations/en.json).
|
If you want to help with translating, take a look at [Weblate](https://weblate.yerbamate.dev/projects/lemmy/).
|
||||||
|
|
||||||
- Languages supported: Brazilian Portuguese (`pt-br`), Catalan, (`ca`), Farsi (`fa`), English (`en`), Chinese (`zh`), Dutch (`nl`), Esperanto (`eo`), Finnish (`fi`), French (`fr`), Spanish (`es`), Swedish (`sv`), German (`de`), Russian (`ru`), Italian (`it`).
|
|
||||||
|
|
||||||
<!-- translations -->
|
|
||||||
|
|
||||||
lang | done | missing
|
|
||||||
---- | ---- | -------
|
|
||||||
ca | 97% | cross_posted_to,old,support_on_liberapay,couldnt_get_comments,post_title_too_long,time,action
|
|
||||||
de | 86% | cross_posted_to,create_private_message,send_secure_message,send_message,message,avatar,upload_avatar,show_avatars,old,docs,message_sent,messages,old_password,matrix_user_id,private_message_disclaimer,send_notifications_to_email,downvotes_disabled,enable_downvotes,open_registration,registration_closed,enable_nsfw,donate_to_lemmy,donate,from,logged_in,couldnt_get_comments,post_title_too_long,email_already_exists,couldnt_create_private_message,no_private_message_edit_allowed,couldnt_update_private_message,time,action
|
|
||||||
fa | 71% | cross_post,cross_posted_to,subscribed_to_communities,trending_communities,create_private_message,send_secure_message,send_message,message,mod,mods,moderates,remove_as_mod,appoint_as_mod,modlog,stickied,ban,ban_from_site,unban,unban_from_site,banned,number_of_subscribers,subscribers,both,saved,unsubscribe,subscribe,subscribed,old,api,docs,inbox,inbox_for,message_sent,notifications_error,messages,no_email_setup,matrix_user_id,private_message_disclaimer,url,body,copy_suggested_title,community,expand_here,subscribe_to_communities,theme,sponsor_message,support_on_liberapay,general_sponsors,joined,by,to,from,landing_0,logged_in,couldnt_get_comments,community_moderator_already_exists,community_follower_already_exists,community_user_already_banned,post_title_too_long,no_slurs,admin_already_created,couldnt_create_private_message,no_private_message_edit_allowed,couldnt_update_private_message,time,action
|
|
||||||
eo | 73% | cross_posted_to,number_of_communities,create_private_message,send_secure_message,send_message,message,preview,upload_image,avatar,upload_avatar,show_avatars,formatting_help,view_source,sticky,unsticky,archive_link,stickied,delete_account,delete_account_confirm,banned,creator,number_online,old,docs,replies,mentions,message_sent,messages,old_password,forgot_password,reset_password_mail_sent,password_change,new_password,no_email_setup,matrix_user_id,private_message_disclaimer,send_notifications_to_email,language,browser_default,downvotes_disabled,enable_downvotes,open_registration,registration_closed,enable_nsfw,theme,support_on_liberapay,donate_to_lemmy,donate,from,are_you_sure,yes,no,logged_in,couldnt_get_comments,post_title_too_long,email_already_exists,couldnt_create_private_message,no_private_message_edit_allowed,couldnt_update_private_message,time,action
|
|
||||||
es | 99% | cross_posted_to,couldnt_get_comments,post_title_too_long
|
|
||||||
fi | 97% | cross_posted_to,old,support_on_liberapay,couldnt_get_comments,post_title_too_long,time,action
|
|
||||||
fr | 100% |
|
|
||||||
it | 82% | cross_posted_to,create_private_message,send_secure_message,send_message,message,avatar,upload_avatar,show_avatars,archive_link,old,docs,message_sent,messages,old_password,forgot_password,reset_password_mail_sent,password_change,new_password,no_email_setup,matrix_user_id,private_message_disclaimer,send_notifications_to_email,language,browser_default,downvotes_disabled,enable_downvotes,open_registration,registration_closed,enable_nsfw,donate_to_lemmy,donate,from,logged_in,couldnt_get_comments,post_title_too_long,email_already_exists,couldnt_create_private_message,no_private_message_edit_allowed,couldnt_update_private_message,time,action
|
|
||||||
nl | 98% | cross_posted_to,couldnt_get_comments,post_title_too_long,time,action
|
|
||||||
pt-br | 99% | couldnt_get_comments,post_title_too_long
|
|
||||||
ru | 70% | cross_posts,cross_post,cross_posted_to,number_of_communities,create_private_message,send_secure_message,send_message,message,preview,upload_image,avatar,upload_avatar,show_avatars,formatting_help,view_source,sticky,unsticky,archive_link,stickied,delete_account,delete_account_confirm,banned,creator,number_online,old,docs,replies,mentions,message_sent,messages,old_password,forgot_password,reset_password_mail_sent,password_change,new_password,no_email_setup,matrix_user_id,private_message_disclaimer,send_notifications_to_email,language,browser_default,downvotes_disabled,enable_downvotes,open_registration,registration_closed,enable_nsfw,recent_comments,theme,support_on_liberapay,donate_to_lemmy,donate,monero,by,to,from,transfer_community,transfer_site,are_you_sure,yes,no,logged_in,couldnt_get_comments,post_title_too_long,email_already_exists,couldnt_create_private_message,no_private_message_edit_allowed,couldnt_update_private_message,time,action
|
|
||||||
sv | 81% | cross_posted_to,create_private_message,send_secure_message,send_message,message,avatar,upload_avatar,show_avatars,archive_link,old,docs,replies,mentions,message_sent,messages,old_password,forgot_password,reset_password_mail_sent,password_change,new_password,no_email_setup,matrix_user_id,private_message_disclaimer,send_notifications_to_email,language,browser_default,downvotes_disabled,enable_downvotes,open_registration,registration_closed,enable_nsfw,support_on_liberapay,donate_to_lemmy,donate,from,logged_in,couldnt_get_comments,post_title_too_long,email_already_exists,couldnt_create_private_message,no_private_message_edit_allowed,couldnt_update_private_message,time,action
|
|
||||||
zh | 69% | cross_posts,cross_post,cross_posted_to,users,number_of_communities,create_private_message,send_secure_message,send_message,message,preview,upload_image,avatar,upload_avatar,show_avatars,formatting_help,view_source,sticky,unsticky,archive_link,settings,stickied,delete_account,delete_account_confirm,banned,creator,number_online,old,docs,replies,mentions,message_sent,messages,old_password,forgot_password,reset_password_mail_sent,password_change,new_password,no_email_setup,matrix_user_id,private_message_disclaimer,send_notifications_to_email,language,browser_default,downvotes_disabled,enable_downvotes,open_registration,registration_closed,enable_nsfw,recent_comments,nsfw,show_nsfw,theme,donate_to_lemmy,donate,monero,by,to,from,transfer_community,transfer_site,are_you_sure,yes,no,logged_in,couldnt_get_comments,post_title_too_long,email_already_exists,couldnt_create_private_message,no_private_message_edit_allowed,couldnt_update_private_message,time,action
|
|
||||||
<!-- translationsstop -->
|
|
||||||
|
|
||||||
If you'd like to update this report, run:
|
|
||||||
|
|
||||||
```bash
|
|
||||||
cd ui
|
|
||||||
ts-node translation_report.ts
|
|
||||||
```
|
|
||||||
|
|
||||||
## Contact
|
## Contact
|
||||||
|
|
||||||
|
|
2
ui/package.json
vendored
2
ui/package.json
vendored
|
@ -63,7 +63,7 @@
|
||||||
"engineStrict": true,
|
"engineStrict": true,
|
||||||
"husky": {
|
"husky": {
|
||||||
"hooks": {
|
"hooks": {
|
||||||
"pre-commit": "yarn run ts-node translation_report.ts && git add ../README.md && cargo clippy --manifest-path ../server/Cargo.toml --all-targets --all-features -- -D warnings && lint-staged"
|
"pre-commit": "git add ../README.md && cargo clippy --manifest-path ../server/Cargo.toml --all-targets --all-features -- -D warnings && lint-staged"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"lint-staged": {
|
"lint-staged": {
|
||||||
|
|
62
ui/translation_report.ts
vendored
62
ui/translation_report.ts
vendored
|
@ -1,62 +0,0 @@
|
||||||
import { en } from './src/translations/en';
|
|
||||||
import { eo } from './src/translations/eo';
|
|
||||||
import { es } from './src/translations/es';
|
|
||||||
import { de } from './src/translations/de';
|
|
||||||
import { fa } from './src/translations/fa';
|
|
||||||
import { zh } from './src/translations/zh';
|
|
||||||
import { fr } from './src/translations/fr';
|
|
||||||
import { sv } from './src/translations/sv';
|
|
||||||
import { ru } from './src/translations/ru';
|
|
||||||
import { nl } from './src/translations/nl';
|
|
||||||
import { it } from './src/translations/it';
|
|
||||||
import { fi } from './src/translations/fi';
|
|
||||||
import { ca } from './src/translations/ca';
|
|
||||||
import { pt_br } from './src/translations/pt_br';
|
|
||||||
import fs from 'fs';
|
|
||||||
|
|
||||||
const files = [
|
|
||||||
{ t: ca, n: 'ca' },
|
|
||||||
{ t: de, n: 'de' },
|
|
||||||
{ t: fa, n: 'fa' },
|
|
||||||
{ t: eo, n: 'eo' },
|
|
||||||
{ t: es, n: 'es' },
|
|
||||||
{ t: fi, n: 'fi' },
|
|
||||||
{ t: fr, n: 'fr' },
|
|
||||||
{ t: it, n: 'it' },
|
|
||||||
{ t: nl, n: 'nl' },
|
|
||||||
{ t: pt_br, n: 'pt-br' },
|
|
||||||
{ t: ru, n: 'ru' },
|
|
||||||
{ t: sv, n: 'sv' },
|
|
||||||
{ t: zh, n: 'zh' },
|
|
||||||
];
|
|
||||||
const masterKeys = Object.keys(en.translation);
|
|
||||||
|
|
||||||
const readmePath = '../README.md';
|
|
||||||
|
|
||||||
const open = '<!-- translations -->';
|
|
||||||
const close = '<!-- translationsstop -->';
|
|
||||||
|
|
||||||
const readmeTxt = fs.readFileSync(readmePath, { encoding: 'utf8' });
|
|
||||||
|
|
||||||
const before = readmeTxt.split(open)[0];
|
|
||||||
const after = readmeTxt.split(close)[1];
|
|
||||||
|
|
||||||
function difference(a: Array<string>, b: Array<string>): Array<string> {
|
|
||||||
return a.filter(x => !b.includes(x));
|
|
||||||
}
|
|
||||||
|
|
||||||
const report =
|
|
||||||
'lang | done | missing\n' +
|
|
||||||
'---- | ---- | -------\n' +
|
|
||||||
files
|
|
||||||
.map(file => {
|
|
||||||
const keys = Object.keys(file.t.translation);
|
|
||||||
const pct: number = (keys.length / masterKeys.length) * 100;
|
|
||||||
const missing = difference(masterKeys, keys);
|
|
||||||
return `${file.n} | ${pct.toFixed(0)}% | ${missing}`;
|
|
||||||
})
|
|
||||||
.join('\n');
|
|
||||||
|
|
||||||
const alteredReadmeTxt = `${before}${open}\n\n${report}\n${close}${after}`;
|
|
||||||
|
|
||||||
fs.writeFileSync(readmePath, alteredReadmeTxt);
|
|
Reference in a new issue