parent
630513540e
commit
38edb60be9
6 changed files with 195 additions and 13 deletions
15
README.md
vendored
15
README.md
vendored
|
@ -163,18 +163,19 @@ Lemmy is free, open-source software, meaning no advertising, monetizing, or vent
|
|||
|
||||
If you'd like to add translations, take a look a look at the [english translation file](ui/src/translations/en.ts).
|
||||
|
||||
- Languages supported: English (`en`), Chinese (`zh`), French (`fr`), Spanish (`es`), Swedish (`sv`), German (`de`), Russian (`ru`).
|
||||
- Languages supported: English (`en`), Chinese (`zh`), Esperanto (`eo`), French (`fr`), Spanish (`es`), Swedish (`sv`), German (`de`), Russian (`ru`).
|
||||
|
||||
### Report
|
||||
|
||||
lang | done | missing
|
||||
--- | --- | ---
|
||||
de | 91% | cross_posts,cross_post,users,settings,subscribed,expires,nsfw,show_nsfw,crypto,monero,joined,by,to,transfer_community,transfer_site
|
||||
es | 96% | cross_posts,cross_post,by,to,transfer_community,transfer_site
|
||||
fr | 93% | cross_posts,cross_post,users,settings,nsfw,show_nsfw,monero,by,to,transfer_community,transfer_site
|
||||
ru | 96% | cross_posts,cross_post,monero,by,to,transfer_community,transfer_site
|
||||
sv | 94% | cross_posts,cross_post,settings,nsfw,show_nsfw,monero,by,to,transfer_community,transfer_site
|
||||
zh | 93% | cross_posts,cross_post,users,settings,nsfw,show_nsfw,monero,by,to,transfer_community,transfer_site
|
||||
de | 90% | cross_posts,cross_post,users,settings,subscribed,expires,recent_comments,nsfw,show_nsfw,crypto,monero,joined,by,to,transfer_community,transfer_site
|
||||
es | 96% | cross_posts,cross_post,recent_comments,by,to,transfer_community,transfer_site
|
||||
eo | 100% |
|
||||
fr | 93% | cross_posts,cross_post,users,settings,recent_comments,nsfw,show_nsfw,monero,by,to,transfer_community,transfer_site
|
||||
ru | 95% | cross_posts,cross_post,recent_comments,monero,by,to,transfer_community,transfer_site
|
||||
sv | 93% | cross_posts,cross_post,settings,recent_comments,nsfw,show_nsfw,monero,by,to,transfer_community,transfer_site
|
||||
zh | 93% | cross_posts,cross_post,users,settings,recent_comments,nsfw,show_nsfw,monero,by,to,transfer_community,transfer_site
|
||||
|
||||
|
||||
## Credits
|
||||
|
|
6
ui/src/components/moment-time.tsx
vendored
6
ui/src/components/moment-time.tsx
vendored
|
@ -1,11 +1,5 @@
|
|||
import { Component } from 'inferno';
|
||||
import * as moment from 'moment';
|
||||
import 'moment/locale/es';
|
||||
import 'moment/locale/de';
|
||||
import 'moment/locale/zh-cn';
|
||||
import 'moment/locale/fr';
|
||||
import 'moment/locale/sv';
|
||||
import 'moment/locale/ru';
|
||||
import { getMomentLanguage } from '../utils';
|
||||
import { i18n } from '../i18next';
|
||||
|
||||
|
|
2
ui/src/i18next.ts
vendored
2
ui/src/i18next.ts
vendored
|
@ -1,6 +1,7 @@
|
|||
import * as i18n from 'i18next';
|
||||
import { getLanguage } from './utils';
|
||||
import { en } from './translations/en';
|
||||
import { eo } from './translations/eo';
|
||||
import { es } from './translations/es';
|
||||
import { de } from './translations/de';
|
||||
import { zh } from './translations/zh';
|
||||
|
@ -12,6 +13,7 @@ import { ru } from './translations/ru';
|
|||
// TODO don't forget to add moment locales for new languages.
|
||||
const resources = {
|
||||
en,
|
||||
eo,
|
||||
es,
|
||||
de,
|
||||
zh,
|
||||
|
|
173
ui/src/translations/eo.ts
vendored
Normal file
173
ui/src/translations/eo.ts
vendored
Normal file
|
@ -0,0 +1,173 @@
|
|||
export const eo = {
|
||||
translation: {
|
||||
post: 'Poŝti',
|
||||
remove_post: 'Fortiri Poŝton',
|
||||
no_posts: 'Ne Poŝtoj.',
|
||||
create_a_post: 'Verki Poŝton',
|
||||
create_post: 'Verki Poŝton',
|
||||
number_of_posts:'{{count}} Poŝtoj',
|
||||
posts: 'Poŝtoj',
|
||||
related_posts: 'Tiuj poŝtoj eble rilatas',
|
||||
cross_posts: 'Tiuj ligilo ankaŭ estas poŝtinta al:',
|
||||
cross_post: 'laŭapoŝto',
|
||||
comments: 'Komentoj',
|
||||
number_of_comments:'{{count}} Komentoj',
|
||||
remove_comment: 'Fortiri Komentojn',
|
||||
communities: 'Komunumoj',
|
||||
users: 'Uzantoj',
|
||||
create_a_community: 'Krei komunumon',
|
||||
create_community: 'Krei Komunumon',
|
||||
remove_community: 'Forigi Komunumon',
|
||||
subscribed_to_communities:'Abonita al <1>komunumoj</1>',
|
||||
trending_communities:'Furora <1>komunumoj</1>',
|
||||
list_of_communities: 'Listo de komunumoj',
|
||||
community_reqs: 'minusklaj leteroj, substrekoj, kaj ne spacetoj.',
|
||||
edit: 'redakti',
|
||||
reply: 'repliki',
|
||||
cancel: 'nuligi',
|
||||
unlock: 'malŝlosi',
|
||||
lock: 'ŝlosi',
|
||||
link: 'ligi',
|
||||
mod: 'moderanto',
|
||||
mods: 'moderantoj',
|
||||
moderates: 'Moderigas',
|
||||
settings: 'Agordoj',
|
||||
remove_as_mod: 'forigi per moderanto',
|
||||
appoint_as_mod: 'nomumi per moderanto',
|
||||
modlog: 'Moderlogo',
|
||||
admin: 'administranto',
|
||||
admins: 'administrantoj',
|
||||
remove_as_admin: 'forigi per administranto',
|
||||
appoint_as_admin: 'nomumi per administranto',
|
||||
remove: 'fortiri',
|
||||
removed: 'fortirita',
|
||||
locked: 'ŝlosita',
|
||||
reason: 'Kialo',
|
||||
mark_as_read: 'marki kiel legita',
|
||||
mark_as_unread: 'marki kiel nelegita',
|
||||
delete: 'forigi',
|
||||
deleted: 'forigita',
|
||||
restore: 'restaŭri',
|
||||
ban: 'forbari',
|
||||
ban_from_site: 'forbari de retejo',
|
||||
unban: 'malforbari',
|
||||
unban_from_site: 'malforbari de retejo',
|
||||
save: 'konservi',
|
||||
unsave: 'malkonservi',
|
||||
create: 'krei',
|
||||
username: 'Uzantnomo',
|
||||
email_or_username: 'Retadreso aŭ Uzantnomo',
|
||||
number_of_users:'{{count}} Uzantoj',
|
||||
number_of_subscribers:'{{count}} Abonantoj',
|
||||
number_of_points:'{{count}} Voĉdonoj',
|
||||
name: 'Nomo',
|
||||
title: 'Titolo',
|
||||
category: 'Kategorio',
|
||||
subscribers: 'Abonantoj',
|
||||
both: 'Ambaŭ',
|
||||
saved: 'Konservita',
|
||||
unsubscribe: 'Malaboni',
|
||||
subscribe: 'Aboni',
|
||||
subscribed: 'Abonita',
|
||||
prev: 'Antaŭe',
|
||||
next: 'Poste',
|
||||
sidebar: 'Flankstango',
|
||||
sort_type: 'Klasi per kia',
|
||||
hot: 'Varmaj',
|
||||
new: 'Novaj',
|
||||
top_day: 'Supraj tagaj',
|
||||
week: 'Semajno',
|
||||
month: 'Monato',
|
||||
year: 'Jaro',
|
||||
all: 'Ĉiam',
|
||||
top: 'Supraj',
|
||||
api: 'API',
|
||||
inbox: 'Ricevujo',
|
||||
inbox_for: 'Ricevujo de <1>{{user}}</1>',
|
||||
mark_all_as_read: 'marki ĉiujn kiel legitaj',
|
||||
type: 'Tipo',
|
||||
unread: 'Nelegitaj',
|
||||
reply_sent: 'Repliko sendis',
|
||||
search: 'Serĉi',
|
||||
overview: 'Resumo',
|
||||
view: 'Rigardi',
|
||||
logout: 'Elsaluti',
|
||||
login_sign_up: 'Ensaluti / Registriĝi',
|
||||
login: 'Ensaluti',
|
||||
sign_up: 'Registriĝi',
|
||||
notifications_error: 'Labortablaj avizoj estas nehavebla en via retumilo. Provu Firefox-on aŭ Chrome-on.',
|
||||
unread_messages: 'Nelegitaj Mesaĝoj',
|
||||
password: 'Pasvorto',
|
||||
verify_password: 'Konfirmu Vian Pasvorton',
|
||||
email: 'Retadreso',
|
||||
optional: 'Fakultativa',
|
||||
expires: 'Finiĝos',
|
||||
url: 'URL',
|
||||
body: 'Ĉefparto',
|
||||
copy_suggested_title: 'kopii la sugestiitan titolon: {{title}}',
|
||||
community: 'Komunumo',
|
||||
expand_here: 'Ekspansii ĉi tie',
|
||||
subscribe_to_communities: 'Aboni al iuj <1>komunumoj</1>.',
|
||||
chat: 'Babilo',
|
||||
recent_comments: 'Freŝaj Komentoj',
|
||||
no_results: 'Ne rezultoj.',
|
||||
setup: 'Agordi',
|
||||
lemmy_instance_setup: 'Agordi Instancon de Lemmy',
|
||||
setup_admin: 'Agordi Retejan Administranton',
|
||||
your_site: 'via retejo',
|
||||
modified: 'modifita',
|
||||
nsfw: 'NSFW',
|
||||
show_nsfw: 'Vidigi NSFW-an enhavon',
|
||||
sponsors: 'Subtenantoj',
|
||||
sponsors_of_lemmy: 'Subtenantoj de Lemmy',
|
||||
sponsor_message: 'Lemmy estas senpaga, <1>liberkoda</1> programaro. Tio signifas ne reklami, pagigi, aŭ riska kapitalo, ĉiam. Viaj donacoj rekte subtenas plentempan evoluon de la projekto. Dankon al tiuj homoj:',
|
||||
support_on_patreon: 'Subteni per Patreon',
|
||||
general_sponsors:'Ĝeneralaj Subtenantoj estas tiuj ke donacis inter $10 kaj $39 al Lemmy.',
|
||||
crypto: 'Crypto',
|
||||
bitcoin: 'Bitcoin',
|
||||
ethereum: 'Ethereum',
|
||||
monero: 'Monero',
|
||||
code: 'Kodo',
|
||||
joined: 'Unuiĝis',
|
||||
by: 'de',
|
||||
to: 'al',
|
||||
transfer_community: 'transdoni la komunumon',
|
||||
transfer_site: 'transdoni la retejon',
|
||||
powered_by: 'Konstruis per',
|
||||
landing_0: 'Lemmy estas <1>ligila agregatilo</1> / Reddit anstataŭo ke intenciĝas funkci en la <2>federacio-universo</2>.<3></3>ĝi estas mem-gastigebla, havas nuna-ĝisdatigajn komentarojn, kaj estas malgrandega (<4>~80kB</4>). Federacio en la ActivityPub-an reton estas planizita. <5></5>Estas <6>fruega beta versio</6>, kaj multaj trajtoj estas nune difektaj aŭ mankaj. <7></7>Sugestias novajn trajtojn aŭ raportas cimojn <8>ĉi tie.</8><9></9>Faris per <10>Rust</10>, <11>Actix</11>, <12>Inferno</12>, <13>Typescript</13>.',
|
||||
not_logged_in: 'Ne estas ensalutinta.',
|
||||
community_ban: 'Vi estas forbarita de la komunumo.',
|
||||
site_ban: 'Vi estas forbarita de la retejo',
|
||||
couldnt_create_comment: 'Ne povis krei la komenton.',
|
||||
couldnt_like_comment: 'Ne povis ŝati la komenton.',
|
||||
couldnt_update_comment: 'Ne povis ĝisdatigi komenton.',
|
||||
couldnt_save_comment: 'Ne povis konservi komenton.',
|
||||
no_comment_edit_allowed: 'Ne rajtas redakti la komenton.',
|
||||
no_post_edit_allowed: 'Ne rajtas redakti la poŝton.',
|
||||
no_community_edit_allowed: 'Ne rajtas redakti la komunumon.',
|
||||
couldnt_find_community: 'Ne povis trovi la komunumon.',
|
||||
couldnt_update_community: 'Ne povis ĝisdatigi la komunumon.',
|
||||
community_already_exists: 'Komunumo jam ekzistas.',
|
||||
community_moderator_already_exists: 'Komunuma moderanto jam ekzistas.',
|
||||
community_follower_already_exists: 'Komunuma sekvanto.',
|
||||
community_user_already_banned: 'Komunuma uzanto jam estas forbarita.',
|
||||
couldnt_create_post: 'Ne povis krei la poŝton.',
|
||||
couldnt_like_post: 'Ne povis ŝati la poŝton.',
|
||||
couldnt_find_post: 'Ne povis trovi la poŝton.',
|
||||
couldnt_get_posts: 'Ne povis irpreni poŝtojn',
|
||||
couldnt_update_post: 'Ne povis ĝisdatigi la poŝton',
|
||||
couldnt_save_post: 'Ne povis konservi la poŝton.',
|
||||
no_slurs: 'Ne bigotaj vortoj.',
|
||||
not_an_admin: 'Ne estas administranto.',
|
||||
site_already_exists: 'Retejo jam ekzistas.',
|
||||
couldnt_update_site: 'Ne povis ĝisdatigi la retejon.',
|
||||
couldnt_find_that_username_or_email: 'Ne povis trovi tiun uzantnomon aŭ retadreson.',
|
||||
password_incorrect: 'Pasvorto malĝustas.',
|
||||
passwords_dont_match: 'Pasvortoj ne samas.',
|
||||
admin_already_created: 'Pardonu, jam estas administranto.',
|
||||
user_already_exists: 'Uzanto jam ekzistas.',
|
||||
couldnt_update_user: 'Ne povis ĝisdatigi la uzanton.',
|
||||
system_err_login: 'Sistema eraro. Provu elsaluti kaj ensaluti.',
|
||||
},
|
||||
}
|
||||
|
10
ui/src/utils.ts
vendored
10
ui/src/utils.ts
vendored
|
@ -1,3 +1,11 @@
|
|||
import 'moment/locale/es';
|
||||
import 'moment/locale/eo';
|
||||
import 'moment/locale/de';
|
||||
import 'moment/locale/zh-cn';
|
||||
import 'moment/locale/fr';
|
||||
import 'moment/locale/sv';
|
||||
import 'moment/locale/ru';
|
||||
|
||||
import { UserOperation, Comment, User, SortType, ListingType } from './interfaces';
|
||||
import * as markdown_it from 'markdown-it';
|
||||
import * as markdown_it_container from 'markdown-it-container';
|
||||
|
@ -188,6 +196,8 @@ export function getMomentLanguage(): string {
|
|||
lang = 'ru';
|
||||
} else if (lang.startsWith('es')) {
|
||||
lang = 'es';
|
||||
} else if (lang.startsWith('eo')) {
|
||||
lang = 'eo';
|
||||
} else {
|
||||
lang = 'en';
|
||||
}
|
||||
|
|
2
ui/translation_report.ts
vendored
2
ui/translation_report.ts
vendored
|
@ -1,4 +1,5 @@
|
|||
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 { zh } from './src/translations/zh';
|
||||
|
@ -9,6 +10,7 @@ import { ru } from './src/translations/ru';
|
|||
let files = [
|
||||
{t: de, n: 'de'},
|
||||
{t: es, n: 'es'},
|
||||
{t: eo, n: 'eo'},
|
||||
{t: fr, n: 'fr'},
|
||||
{t: ru, n: 'ru'},
|
||||
{t: sv, n: 'sv'},
|
||||
|
|
Loading…
Reference in a new issue