Allow for more custom migration
This commit is contained in:
parent
83c12a817c
commit
d5f1d45b06
|
@ -11,7 +11,7 @@
|
||||||
"title": "Títol",
|
"title": "Títol",
|
||||||
"body": "Cos",
|
"body": "Cos",
|
||||||
"nsfw": "Per a adults",
|
"nsfw": "Per a adults",
|
||||||
"post": "Publicar",
|
"post": "publicar",
|
||||||
"save": "desa",
|
"save": "desa",
|
||||||
"send_message": "Envia el missatge",
|
"send_message": "Envia el missatge",
|
||||||
"subscribed": "Subscrit",
|
"subscribed": "Subscrit",
|
||||||
|
@ -95,5 +95,18 @@
|
||||||
"post_title_too_long": "El títol de l’apunt és massa llarg.",
|
"post_title_too_long": "El títol de l’apunt és massa llarg.",
|
||||||
"email_already_exists": "L’adreça ja és en ús.",
|
"email_already_exists": "L’adreça ja és en ús.",
|
||||||
"user_already_exists": "L’usuari ja existeix.",
|
"user_already_exists": "L’usuari ja existeix.",
|
||||||
"number_users_online": "{count,plural, =1{{count} usuari en línia} other{{count} usuaris en línia}}"
|
"number_users_online": "{count,plural, =1{{count} usuari en línia} other{{count} usuaris en línia}}",
|
||||||
|
"bio": "Biografia",
|
||||||
|
"invalid_url": "URL invàlida.",
|
||||||
|
"report_reason_required": "Motiu de l'informe necessari.",
|
||||||
|
"report_too_long": "Informe massa llarg.",
|
||||||
|
"couldnt_create_report": "No s'ha pogut crear l'informe.",
|
||||||
|
"couldnt_resolve_report": "No s'ha pogut resoldre l'informe.",
|
||||||
|
"invalid_post_title": "Títol de la publicació invàlid",
|
||||||
|
"not_a_moderator": "No ets un moderador.",
|
||||||
|
"invalid_password": "Contrasenya no vàlida. La contrasenya ha de tenir <= 60 caràcters.",
|
||||||
|
"captcha_incorrect": "Captcha incorrecte.",
|
||||||
|
"bio_length_overflow": "La biografia d'usuari no pot excedir els 300 caràcters.",
|
||||||
|
"number_of_comments": "{count,plural, =1{{count} comentari} other{{count} comentaris}}",
|
||||||
|
"number_of_posts": "{count,plural, =1{{count} Publicació} other{{count} Publicacions}}"
|
||||||
}
|
}
|
||||||
|
|
|
@ -106,5 +106,7 @@
|
||||||
"post_title_too_long": "Indlægstitel for lang.",
|
"post_title_too_long": "Indlægstitel for lang.",
|
||||||
"email_already_exists": "Emailen findes allerede.",
|
"email_already_exists": "Emailen findes allerede.",
|
||||||
"user_already_exists": "Brugeren findes allerede.",
|
"user_already_exists": "Brugeren findes allerede.",
|
||||||
"number_users_online": "{count,plural, =1{{count} Bruger Online} other{{count} Brugere Online}}"
|
"number_users_online": "{count,plural, =1{{count} Bruger Online} other{{count} Brugere Online}}",
|
||||||
|
"number_of_comments": "{count,plural, =1{{count} Kommentar} other{{count} Kommentarer}}",
|
||||||
|
"number_of_posts": "{count,plural, =1{{count} Indlæg} other{{count} Indlæg}}"
|
||||||
}
|
}
|
||||||
|
|
|
@ -102,5 +102,7 @@
|
||||||
"post_title_too_long": "Posttitel zu lang.",
|
"post_title_too_long": "Posttitel zu lang.",
|
||||||
"email_already_exists": "Email existiert bereits.",
|
"email_already_exists": "Email existiert bereits.",
|
||||||
"user_already_exists": "Nutzer existiert bereits.",
|
"user_already_exists": "Nutzer existiert bereits.",
|
||||||
"number_users_online": "{count,plural, =1{{count} Benutzer online} other{{count} Benutzer*innen online}}"
|
"number_users_online": "{count,plural, =1{{count} Benutzer online} other{{count} Benutzer*innen online}}",
|
||||||
|
"number_of_comments": "{count,plural, =1{{count} Kommentar} other{{count} Kommentare}}",
|
||||||
|
"number_of_posts": "{count,plural, =1{{count} Beitrag} other{{count} Beiträge}}"
|
||||||
}
|
}
|
||||||
|
|
|
@ -106,5 +106,7 @@
|
||||||
"post_title_too_long": "Η επικεφαλίδα της δημοσίευσης είναι υπερβολικά μεγάλη.",
|
"post_title_too_long": "Η επικεφαλίδα της δημοσίευσης είναι υπερβολικά μεγάλη.",
|
||||||
"email_already_exists": "Η διεύθυνση ηλεκτρονικού ταχυδρομείου υπάρχει ήδη.",
|
"email_already_exists": "Η διεύθυνση ηλεκτρονικού ταχυδρομείου υπάρχει ήδη.",
|
||||||
"user_already_exists": "Ο χρήστης υπάρχει ήδη.",
|
"user_already_exists": "Ο χρήστης υπάρχει ήδη.",
|
||||||
"number_users_online": "{count,plural, =1{{count} ενεργός χρήστης} other{{count} ενεργοί χρήστες}}"
|
"number_users_online": "{count,plural, =1{{count} ενεργός χρήστης} other{{count} ενεργοί χρήστες}}",
|
||||||
|
"number_of_comments": "{count,plural, =1{{count} Σχόλιο} other{{count} Σχόλια}}",
|
||||||
|
"number_of_posts": "{count,plural, =1{{count} Δημοσίευση} other{{count} Δημοσιεύσεις}}"
|
||||||
}
|
}
|
||||||
|
|
|
@ -229,7 +229,29 @@
|
||||||
"number_users_online": "{count,plural, =1{{count} user online} other{{count} users online}}",
|
"number_users_online": "{count,plural, =1{{count} user online} other{{count} users online}}",
|
||||||
"@number_users_online": {
|
"@number_users_online": {
|
||||||
"placeholders": {
|
"placeholders": {
|
||||||
"count": {}
|
"count": {
|
||||||
|
"type": "int"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"not_a_mod_or_admin": "Not a moderator or admin.",
|
||||||
|
"@not_a_mod_or_admin": {},
|
||||||
|
"number_of_comments": "{count,plural, =1{{count} Comment} other{{count} Comments}}",
|
||||||
|
"@number_of_comments": {
|
||||||
|
"placeholders": {
|
||||||
|
"count": {
|
||||||
|
"type": "int",
|
||||||
|
"format": "compact"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"number_of_posts": "{count,plural, =1{{count} Post} other{{count} Posts}}",
|
||||||
|
"@number_of_posts": {
|
||||||
|
"placeholders": {
|
||||||
|
"count": {
|
||||||
|
"type": "int",
|
||||||
|
"format": "compact"
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -106,5 +106,7 @@
|
||||||
"post_title_too_long": "Titolo de afiŝo estas tro longa.",
|
"post_title_too_long": "Titolo de afiŝo estas tro longa.",
|
||||||
"email_already_exists": "Retpoŝtadreso jam ekzistas.",
|
"email_already_exists": "Retpoŝtadreso jam ekzistas.",
|
||||||
"user_already_exists": "Uzanto jam ekzistas.",
|
"user_already_exists": "Uzanto jam ekzistas.",
|
||||||
"number_users_online": "{count,plural, =1{{count} uzanto enreta} other{{count} uzantoj enretaj}}"
|
"number_users_online": "{count,plural, =1{{count} uzanto enreta} other{{count} uzantoj enretaj}}",
|
||||||
|
"number_of_comments": "{count,plural, =1{{count} komento} other{{count} komentoj}}",
|
||||||
|
"number_of_posts": "{count,plural, =1{{count} afiŝo} other{{count} afiŝoj}}"
|
||||||
}
|
}
|
||||||
|
|
|
@ -106,5 +106,7 @@
|
||||||
"post_title_too_long": "El título de la publicación es muy largo.",
|
"post_title_too_long": "El título de la publicación es muy largo.",
|
||||||
"email_already_exists": "El correo ya está en uso.",
|
"email_already_exists": "El correo ya está en uso.",
|
||||||
"user_already_exists": "El usuario ya existe.",
|
"user_already_exists": "El usuario ya existe.",
|
||||||
"number_users_online": "{count,plural, =1{{count} usuario en línea} other{{count} usuarios en línea}}"
|
"number_users_online": "{count,plural, =1{{count} usuario en línea} other{{count} usuarios en línea}}",
|
||||||
|
"number_of_comments": "{count,plural, =1{{count} Comentario} other{{count} Comentarios}}",
|
||||||
|
"number_of_posts": "{count,plural, =1{{count} Publicación} other{{count} Publicaciones}}"
|
||||||
}
|
}
|
||||||
|
|
|
@ -106,5 +106,7 @@
|
||||||
"post_title_too_long": "Bidalketaren izenburua luzeegia da.",
|
"post_title_too_long": "Bidalketaren izenburua luzeegia da.",
|
||||||
"email_already_exists": "Eposta hori dagoeneko existitzen da.",
|
"email_already_exists": "Eposta hori dagoeneko existitzen da.",
|
||||||
"user_already_exists": "Erabiltzaile hori dagoeneko existitzen da.",
|
"user_already_exists": "Erabiltzaile hori dagoeneko existitzen da.",
|
||||||
"number_users_online": "{count,plural, =1{Erabiltzaile {count} konektatuta} other{{count} erabiltzaile konektatuta}}"
|
"number_users_online": "{count,plural, =1{Erabiltzaile {count} konektatuta} other{{count} erabiltzaile konektatuta}}",
|
||||||
|
"number_of_comments": "{count,plural, =1{Iruzkin {count}} other{{count} iruzkin}}",
|
||||||
|
"number_of_posts": "{count,plural, =1{Bidalketa {count}} other{{count} bidalketa}}"
|
||||||
}
|
}
|
||||||
|
|
|
@ -68,5 +68,7 @@
|
||||||
"couldnt_update_post": "ناتوای در بهروزرسانی مطلب",
|
"couldnt_update_post": "ناتوای در بهروزرسانی مطلب",
|
||||||
"email_already_exists": "این رایانامه از قبل وجود دارد.",
|
"email_already_exists": "این رایانامه از قبل وجود دارد.",
|
||||||
"user_already_exists": "این کاربر از قبل وجود دارد.",
|
"user_already_exists": "این کاربر از قبل وجود دارد.",
|
||||||
"number_users_online": "{count,plural, =1{{count} کاربر برخط}}"
|
"number_users_online": "{count,plural, =1{{count} کاربر برخط}}",
|
||||||
|
"number_of_comments": "{count,plural, =1{{count} نظر}}",
|
||||||
|
"number_of_posts": "{count,plural, =1{{count} مطلب}}"
|
||||||
}
|
}
|
||||||
|
|
|
@ -91,5 +91,7 @@
|
||||||
"post_title_too_long": "Viestin otsikko on liian pitkä.",
|
"post_title_too_long": "Viestin otsikko on liian pitkä.",
|
||||||
"email_already_exists": "Sähköposti on jo olemassa.",
|
"email_already_exists": "Sähköposti on jo olemassa.",
|
||||||
"user_already_exists": "Käyttäjä on jo olemassa.",
|
"user_already_exists": "Käyttäjä on jo olemassa.",
|
||||||
"number_users_online": "{count,plural, =1{{count} käyttäjä aktiivisena} other{{count} käyttäjää aktiivisena}}"
|
"number_users_online": "{count,plural, =1{{count} käyttäjä aktiivisena} other{{count} käyttäjää aktiivisena}}",
|
||||||
|
"number_of_comments": "{count,plural, =1{{count} kommentti} other{{count} kommenttia}}",
|
||||||
|
"number_of_posts": "{count,plural, =1{{count} viesti} other{{count} viestiä}}"
|
||||||
}
|
}
|
||||||
|
|
|
@ -20,7 +20,7 @@
|
||||||
"replies": "Réponses",
|
"replies": "Réponses",
|
||||||
"mentions": "Mentions",
|
"mentions": "Mentions",
|
||||||
"from": "de",
|
"from": "de",
|
||||||
"to": "vers",
|
"to": "dans",
|
||||||
"deleted_by_creator": "supprimé par le créateur",
|
"deleted_by_creator": "supprimé par le créateur",
|
||||||
"more": "plus",
|
"more": "plus",
|
||||||
"mark_as_read": "marquer comme lu",
|
"mark_as_read": "marquer comme lu",
|
||||||
|
@ -105,5 +105,7 @@
|
||||||
"post_title_too_long": "Le titre de la publication est trop long.",
|
"post_title_too_long": "Le titre de la publication est trop long.",
|
||||||
"email_already_exists": "L’email existe déjà.",
|
"email_already_exists": "L’email existe déjà.",
|
||||||
"user_already_exists": "L’utilisateur·rice existe déjà.",
|
"user_already_exists": "L’utilisateur·rice existe déjà.",
|
||||||
"number_users_online": "{count,plural, =1{{count} Utilisateur en ligne} other{{count} Utilisateurs en ligne}}"
|
"number_users_online": "{count,plural, =1{{count} Utilisateur en ligne} other{{count} Utilisateurs en ligne}}",
|
||||||
|
"number_of_comments": "{count,plural, =1{{count} Commentaire} other{{count} Commentaires}}",
|
||||||
|
"number_of_posts": "{count,plural, =1{{count} Publication} other{{count} Publications}}"
|
||||||
}
|
}
|
||||||
|
|
|
@ -17,5 +17,7 @@
|
||||||
"locked": "बंद",
|
"locked": "बंद",
|
||||||
"couldnt_create_comment": "टिप्पणी (कमेंट) नहीं बना पाईं |",
|
"couldnt_create_comment": "टिप्पणी (कमेंट) नहीं बना पाईं |",
|
||||||
"couldnt_find_community": "समुदायों नहीं ढूंढ़ पाएं |",
|
"couldnt_find_community": "समुदायों नहीं ढूंढ़ पाएं |",
|
||||||
"community_already_exists": "यह समुदाय पहले स मौजूद है |"
|
"community_already_exists": "यह समुदाय पहले स मौजूद है |",
|
||||||
|
"number_of_comments": "{count,plural, =1{{{ count }} टिप्पणी (कमेंट )} other{{{ count }} टिप्पणियाँ (कोम्मेंट्स )}}",
|
||||||
|
"number_of_posts": "{count,plural, =1{{count} पोस्ट} other{{count} पोस्ट्स}}"
|
||||||
}
|
}
|
||||||
|
|
|
@ -92,5 +92,7 @@
|
||||||
"post_title_too_long": "A bejegyzés címe túl hosszú.",
|
"post_title_too_long": "A bejegyzés címe túl hosszú.",
|
||||||
"email_already_exists": "Az email már létezik.",
|
"email_already_exists": "Az email már létezik.",
|
||||||
"user_already_exists": "A felhasználó már létezik.",
|
"user_already_exists": "A felhasználó már létezik.",
|
||||||
"number_users_online": "{count,plural, =1{{count} online felhasználó} other{{count} online felhasználó}}"
|
"number_users_online": "{count,plural, =1{{count} online felhasználó} other{{count} online felhasználó}}",
|
||||||
|
"number_of_comments": "{count,plural, =1{{count} hozzászólás} other{{count} hozzászólás}}",
|
||||||
|
"number_of_posts": "{count,plural, =1{{count} bejegyzés} other{{count} bejegyzés}}"
|
||||||
}
|
}
|
||||||
|
|
|
@ -106,5 +106,7 @@
|
||||||
"post_title_too_long": "Titolo della pubblicazione troppo lungo.",
|
"post_title_too_long": "Titolo della pubblicazione troppo lungo.",
|
||||||
"email_already_exists": "Indirizzo email già presente.",
|
"email_already_exists": "Indirizzo email già presente.",
|
||||||
"user_already_exists": "L'utente esiste già.",
|
"user_already_exists": "L'utente esiste già.",
|
||||||
"number_users_online": "{count,plural, =1{{count} utente connesso} other{{count} utenti connessi}}"
|
"number_users_online": "{count,plural, =1{{count} utente connesso} other{{count} utenti connessi}}",
|
||||||
|
"number_of_comments": "{count,plural, =1{{count} Commento} other{{count} Commenti}}",
|
||||||
|
"number_of_posts": "{count,plural, =1{{count} Pubblicazione} other{{count} Pubblicazioni}}"
|
||||||
}
|
}
|
||||||
|
|
|
@ -94,5 +94,7 @@
|
||||||
"post_title_too_long": "投稿のタイトルが長すぎます。",
|
"post_title_too_long": "投稿のタイトルが長すぎます。",
|
||||||
"email_already_exists": "メールアドレスが既に使用されています。",
|
"email_already_exists": "メールアドレスが既に使用されています。",
|
||||||
"user_already_exists": "ユーザーは既に存在します。",
|
"user_already_exists": "ユーザーは既に存在します。",
|
||||||
"number_users_online": "{count,plural, =1{{count} 名のユーザーがオンライン}}"
|
"number_users_online": "{count,plural, =1{{count} 名のユーザーがオンライン}}",
|
||||||
|
"number_of_comments": "{count,plural, =1{{count} 件のコメント}}",
|
||||||
|
"number_of_posts": "{count,plural, =1{{count} 件の投稿}}"
|
||||||
}
|
}
|
||||||
|
|
|
@ -87,5 +87,7 @@
|
||||||
"post_title_too_long": "პოსტის სათაური ძალიან გრძელია.",
|
"post_title_too_long": "პოსტის სათაური ძალიან გრძელია.",
|
||||||
"email_already_exists": "ელ-პოსტა უკვე არსებობს.",
|
"email_already_exists": "ელ-პოსტა უკვე არსებობს.",
|
||||||
"user_already_exists": "მომხმარებელი უკვე არსებობს.",
|
"user_already_exists": "მომხმარებელი უკვე არსებობს.",
|
||||||
"number_users_online": "{count,plural, =1{მომხმარებელი საიტზე} other{მომხმარებელი საიტზე}}"
|
"number_users_online": "{count,plural, =1{მომხმარებელი საიტზე} other{მომხმარებელი საიტზე}}",
|
||||||
|
"number_of_comments": "{count,plural, =1{კომენტარი} other{კომანტარები}}",
|
||||||
|
"number_of_posts": "{count,plural, =1{თარგმნა} other{თარგმნა}}"
|
||||||
}
|
}
|
||||||
|
|
|
@ -20,7 +20,7 @@
|
||||||
"replies": "댓글",
|
"replies": "댓글",
|
||||||
"mentions": "언급",
|
"mentions": "언급",
|
||||||
"from": "에서",
|
"from": "에서",
|
||||||
"to": ">>",
|
"to": "to",
|
||||||
"deleted_by_creator": "글쓴이에 의해 삭제됨",
|
"deleted_by_creator": "글쓴이에 의해 삭제됨",
|
||||||
"more": "더 보기",
|
"more": "더 보기",
|
||||||
"mark_as_read": "읽은 상태로 표시",
|
"mark_as_read": "읽은 상태로 표시",
|
||||||
|
@ -106,5 +106,7 @@
|
||||||
"post_title_too_long": "게시물 제목이 너무 깁니다.",
|
"post_title_too_long": "게시물 제목이 너무 깁니다.",
|
||||||
"email_already_exists": "이메일이 이미 존재합니다.",
|
"email_already_exists": "이메일이 이미 존재합니다.",
|
||||||
"user_already_exists": "사용자가 이미 존재합니다.",
|
"user_already_exists": "사용자가 이미 존재합니다.",
|
||||||
"number_users_online": "{count,plural, =1{접속자수 {count}}}"
|
"number_users_online": "{count,plural, =1{접속자수 {count}}}",
|
||||||
|
"number_of_comments": "{count,plural, =1{덧글수 {count}}}",
|
||||||
|
"number_of_posts": "{count,plural, =1{게시물 수 {count}}}"
|
||||||
}
|
}
|
||||||
|
|
|
@ -3,7 +3,7 @@
|
||||||
"settings": "Instellingen",
|
"settings": "Instellingen",
|
||||||
"password": "Wachtwoord",
|
"password": "Wachtwoord",
|
||||||
"email_or_username": "E-mail of gebruikersnaam",
|
"email_or_username": "E-mail of gebruikersnaam",
|
||||||
"posts": "posts",
|
"posts": "Posts",
|
||||||
"comments": "Reacties",
|
"comments": "Reacties",
|
||||||
"modlog": "Moderatorlog",
|
"modlog": "Moderatorlog",
|
||||||
"community": "Community",
|
"community": "Community",
|
||||||
|
@ -39,7 +39,7 @@
|
||||||
"send_notifications_to_email": "Stuur meldingen naar je email",
|
"send_notifications_to_email": "Stuur meldingen naar je email",
|
||||||
"delete_account": "Verwijder account",
|
"delete_account": "Verwijder account",
|
||||||
"saved": "Opgeslagen",
|
"saved": "Opgeslagen",
|
||||||
"communities": "Communities",
|
"communities": "Gemeenschappen",
|
||||||
"users": "Gebruikers",
|
"users": "Gebruikers",
|
||||||
"theme": "Thema",
|
"theme": "Thema",
|
||||||
"language": "Taal",
|
"language": "Taal",
|
||||||
|
@ -92,5 +92,7 @@
|
||||||
"post_title_too_long": "Posttitel te lang.",
|
"post_title_too_long": "Posttitel te lang.",
|
||||||
"email_already_exists": "Email bestaat al.",
|
"email_already_exists": "Email bestaat al.",
|
||||||
"user_already_exists": "Gebruiker bestaat al.",
|
"user_already_exists": "Gebruiker bestaat al.",
|
||||||
"number_users_online": "{count,plural, =1{{count} gebruiker online} other{{count} gebruikers online}}"
|
"number_users_online": "{count,plural, =1{{count} gebruiker online} other{{count} gebruikers online}}",
|
||||||
|
"number_of_comments": "{count,plural, =1{{count} reactie} other{{count} reacties}}",
|
||||||
|
"number_of_posts": "{count,plural, =1{{count} post} other{{count} posts}}"
|
||||||
}
|
}
|
||||||
|
|
|
@ -102,5 +102,7 @@
|
||||||
"post_title_too_long": "Título da publicação muito longo.",
|
"post_title_too_long": "Título da publicação muito longo.",
|
||||||
"email_already_exists": "Este e-mail já existe.",
|
"email_already_exists": "Este e-mail já existe.",
|
||||||
"user_already_exists": "Este usuário já existe.",
|
"user_already_exists": "Este usuário já existe.",
|
||||||
"number_users_online": "{count,plural, =1{{count} usuário online} other{{count} usuários online}}"
|
"number_users_online": "{count,plural, =1{{count} usuário online} other{{count} usuários online}}",
|
||||||
|
"number_of_comments": "{count,plural, =1{{count} comentário} other{{count} comentários}}",
|
||||||
|
"number_of_posts": "{count,plural, =1{{count} publicação} other{{count} publicações}}"
|
||||||
}
|
}
|
||||||
|
|
|
@ -92,5 +92,7 @@
|
||||||
"post_title_too_long": "Titulli i postimit ishte shumë i gjatë.",
|
"post_title_too_long": "Titulli i postimit ishte shumë i gjatë.",
|
||||||
"email_already_exists": "Email-i tashmë ekziston.",
|
"email_already_exists": "Email-i tashmë ekziston.",
|
||||||
"user_already_exists": "Përdoruesi tashmë ekziston.",
|
"user_already_exists": "Përdoruesi tashmë ekziston.",
|
||||||
"number_users_online": "{count,plural, =1{{count} Përdorues Online} other{{count} Përdoruesa Online}}"
|
"number_users_online": "{count,plural, =1{{count} Përdorues Online} other{{count} Përdoruesa Online}}",
|
||||||
|
"number_of_comments": "{count,plural, =1{{count} Koment} other{{count} Komente}}",
|
||||||
|
"number_of_posts": "{count,plural, =1{{count} Postim} other{{count} Postime}}"
|
||||||
}
|
}
|
||||||
|
|
|
@ -106,5 +106,7 @@
|
||||||
"post_title_too_long": "Inläggstiteln är för lång.",
|
"post_title_too_long": "Inläggstiteln är för lång.",
|
||||||
"email_already_exists": "E-post finns redan.",
|
"email_already_exists": "E-post finns redan.",
|
||||||
"user_already_exists": "Användaren finns redan.",
|
"user_already_exists": "Användaren finns redan.",
|
||||||
"number_users_online": "{count,plural, =1{{count} användare inloggad} other{{count} användare inloggade}}"
|
"number_users_online": "{count,plural, =1{{count} användare inloggad} other{{count} användare inloggade}}",
|
||||||
|
"number_of_comments": "{count,plural, =1{{count} kommentar} other{{count} kommentarer}}",
|
||||||
|
"number_of_posts": "{count,plural, =1{{count} inlägg} other{{count} inlägg}}"
|
||||||
}
|
}
|
||||||
|
|
|
@ -92,5 +92,7 @@
|
||||||
"post_title_too_long": "Paylaşım başlığı çok uzun.",
|
"post_title_too_long": "Paylaşım başlığı çok uzun.",
|
||||||
"email_already_exists": "Böyle bir e-mail adresi zaten var.",
|
"email_already_exists": "Böyle bir e-mail adresi zaten var.",
|
||||||
"user_already_exists": "Böyle bir kullanıcı zaten var.",
|
"user_already_exists": "Böyle bir kullanıcı zaten var.",
|
||||||
"number_users_online": "{count,plural, =1{{count} Kullanıcı Hatta} other{{count} Kullanıcı Hatta}}"
|
"number_users_online": "{count,plural, =1{{count} Kullanıcı Hatta} other{{count} Kullanıcı Hatta}}",
|
||||||
|
"number_of_comments": "{count,plural, =1{{count} Yorum} other{{count} Yorum}}",
|
||||||
|
"number_of_posts": "{count,plural, =1{{count} Paylaşım} other{{count} Paylaşım}}"
|
||||||
}
|
}
|
||||||
|
|
|
@ -106,5 +106,7 @@
|
||||||
"post_title_too_long": "帖子标题过长。",
|
"post_title_too_long": "帖子标题过长。",
|
||||||
"email_already_exists": "邮箱已占用.",
|
"email_already_exists": "邮箱已占用.",
|
||||||
"user_already_exists": "用户已存在。",
|
"user_already_exists": "用户已存在。",
|
||||||
"number_users_online": "{count,plural, =1{{count} 在线用户} other{{count} 名在线用户}}"
|
"number_users_online": "{count,plural, =1{{count} 在线用户} other{{count} 名在线用户}}",
|
||||||
|
"number_of_comments": "{count,plural, =1{{count} 条评论} other{{count} 条评论}}",
|
||||||
|
"number_of_posts": "{count,plural, =1{{count} 个帖子} other{{count} 条帖子}}"
|
||||||
}
|
}
|
||||||
|
|
|
@ -95,17 +95,14 @@ abstract class L10nStrings {
|
||||||
static const couldnt_update_site = 'couldnt_update_site';
|
static const couldnt_update_site = 'couldnt_update_site';
|
||||||
static const invalid_community_name = 'invalid_community_name';
|
static const invalid_community_name = 'invalid_community_name';
|
||||||
static const community_already_exists = 'community_already_exists';
|
static const community_already_exists = 'community_already_exists';
|
||||||
static const community_moderator_already_exists =
|
static const community_moderator_already_exists = 'community_moderator_already_exists';
|
||||||
'community_moderator_already_exists';
|
static const community_follower_already_exists = 'community_follower_already_exists';
|
||||||
static const community_follower_already_exists =
|
|
||||||
'community_follower_already_exists';
|
|
||||||
static const not_a_moderator = 'not_a_moderator';
|
static const not_a_moderator = 'not_a_moderator';
|
||||||
static const couldnt_update_community = 'couldnt_update_community';
|
static const couldnt_update_community = 'couldnt_update_community';
|
||||||
static const no_community_edit_allowed = 'no_community_edit_allowed';
|
static const no_community_edit_allowed = 'no_community_edit_allowed';
|
||||||
static const system_err_login = 'system_err_login';
|
static const system_err_login = 'system_err_login';
|
||||||
static const community_user_already_banned = 'community_user_already_banned';
|
static const community_user_already_banned = 'community_user_already_banned';
|
||||||
static const couldnt_find_that_username_or_email =
|
static const couldnt_find_that_username_or_email = 'couldnt_find_that_username_or_email';
|
||||||
'couldnt_find_that_username_or_email';
|
|
||||||
static const password_incorrect = 'password_incorrect';
|
static const password_incorrect = 'password_incorrect';
|
||||||
static const registration_closed = 'registration_closed';
|
static const registration_closed = 'registration_closed';
|
||||||
static const invalid_password = 'invalid_password';
|
static const invalid_password = 'invalid_password';
|
||||||
|
@ -114,17 +111,17 @@ abstract class L10nStrings {
|
||||||
static const invalid_username = 'invalid_username';
|
static const invalid_username = 'invalid_username';
|
||||||
static const bio_length_overflow = 'bio_length_overflow';
|
static const bio_length_overflow = 'bio_length_overflow';
|
||||||
static const couldnt_update_user = 'couldnt_update_user';
|
static const couldnt_update_user = 'couldnt_update_user';
|
||||||
static const couldnt_update_private_message =
|
static const couldnt_update_private_message = 'couldnt_update_private_message';
|
||||||
'couldnt_update_private_message';
|
|
||||||
static const couldnt_update_post = 'couldnt_update_post';
|
static const couldnt_update_post = 'couldnt_update_post';
|
||||||
static const couldnt_create_private_message =
|
static const couldnt_create_private_message = 'couldnt_create_private_message';
|
||||||
'couldnt_create_private_message';
|
static const no_private_message_edit_allowed = 'no_private_message_edit_allowed';
|
||||||
static const no_private_message_edit_allowed =
|
|
||||||
'no_private_message_edit_allowed';
|
|
||||||
static const post_title_too_long = 'post_title_too_long';
|
static const post_title_too_long = 'post_title_too_long';
|
||||||
static const email_already_exists = 'email_already_exists';
|
static const email_already_exists = 'email_already_exists';
|
||||||
static const user_already_exists = 'user_already_exists';
|
static const user_already_exists = 'user_already_exists';
|
||||||
static const number_users_online = 'number_users_online';
|
static const number_users_online = 'number_users_online';
|
||||||
|
static const not_a_mod_or_admin = 'not_a_mod_or_admin';
|
||||||
|
static const number_of_comments = 'number_of_comments';
|
||||||
|
static const number_of_posts = 'number_of_posts';
|
||||||
}
|
}
|
||||||
|
|
||||||
extension L10nFromString on String {
|
extension L10nFromString on String {
|
||||||
|
@ -356,6 +353,8 @@ extension L10nFromString on String {
|
||||||
return L10n.of(context).email_already_exists;
|
return L10n.of(context).email_already_exists;
|
||||||
case L10nStrings.user_already_exists:
|
case L10nStrings.user_already_exists:
|
||||||
return L10n.of(context).user_already_exists;
|
return L10n.of(context).user_already_exists;
|
||||||
|
case L10nStrings.not_a_mod_or_admin:
|
||||||
|
return L10n.of(context).not_a_mod_or_admin;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
return this;
|
return this;
|
||||||
|
|
|
@ -6,120 +6,143 @@ import 'dart:io';
|
||||||
import 'common.dart';
|
import 'common.dart';
|
||||||
import 'gen_l10n_from_string.dart' as gen;
|
import 'gen_l10n_from_string.dart' as gen;
|
||||||
|
|
||||||
/// Map<key, renamedKey>, if `renamedKey` is null then no rename is performed
|
// config for migration of a single key
|
||||||
const toExtract = {
|
class _ {
|
||||||
'settings': null,
|
final String key;
|
||||||
'password': null,
|
final String rename;
|
||||||
'email_or_username': null,
|
|
||||||
'posts': null,
|
|
||||||
'comments': null,
|
|
||||||
'modlog': null,
|
|
||||||
'community': null,
|
|
||||||
'url': null,
|
|
||||||
'title': null,
|
|
||||||
'body': null,
|
|
||||||
'nsfw': null,
|
|
||||||
'post': null,
|
|
||||||
'save': null,
|
|
||||||
'send_message': null,
|
|
||||||
'subscribed': null,
|
|
||||||
'local': null,
|
|
||||||
'all': null,
|
|
||||||
'replies': null,
|
|
||||||
'mentions': null,
|
|
||||||
'from': null,
|
|
||||||
'to': null,
|
|
||||||
'deleted': 'deleted_by_creator',
|
|
||||||
'more': null,
|
|
||||||
'mark_as_read': null,
|
|
||||||
'mark_as_unread': null,
|
|
||||||
'reply': null,
|
|
||||||
'edit': null,
|
|
||||||
'delete': null,
|
|
||||||
'restore': null,
|
|
||||||
'yes': null,
|
|
||||||
'no': null,
|
|
||||||
'avatar': null,
|
|
||||||
'banner': null,
|
|
||||||
'display_name': null,
|
|
||||||
'bio': null,
|
|
||||||
'email': null,
|
|
||||||
'matrix_user_id': 'matrix_user',
|
|
||||||
'sort_type': null,
|
|
||||||
'type': null,
|
|
||||||
'show_nsfw': null,
|
|
||||||
'send_notifications_to_email': null,
|
|
||||||
'delete_account': null,
|
|
||||||
'saved': null,
|
|
||||||
'communities': null,
|
|
||||||
'users': null,
|
|
||||||
'theme': null,
|
|
||||||
'language': null,
|
|
||||||
'hot': null,
|
|
||||||
'new': null,
|
|
||||||
'old': null,
|
|
||||||
'top': null,
|
|
||||||
'chat': null,
|
|
||||||
'admin': null,
|
|
||||||
'by': null,
|
|
||||||
'not_a_mod_or_admin': null,
|
|
||||||
'not_an_admin': null,
|
|
||||||
'couldnt_find_post': null,
|
|
||||||
'not_logged_in': null,
|
|
||||||
'site_ban': null,
|
|
||||||
'community_ban': null,
|
|
||||||
'downvotes_disabled': null,
|
|
||||||
'invalid_url': null,
|
|
||||||
'locked': null,
|
|
||||||
'couldnt_create_comment': null,
|
|
||||||
'couldnt_like_comment': null,
|
|
||||||
'couldnt_update_comment': null,
|
|
||||||
'no_comment_edit_allowed': null,
|
|
||||||
'couldnt_save_comment': null,
|
|
||||||
'couldnt_get_comments': null,
|
|
||||||
'report_reason_required': null,
|
|
||||||
'report_too_long': null,
|
|
||||||
'couldnt_create_report': null,
|
|
||||||
'couldnt_resolve_report': null,
|
|
||||||
'invalid_post_title': null,
|
|
||||||
'couldnt_create_post': null,
|
|
||||||
'couldnt_like_post': null,
|
|
||||||
'couldnt_find_community': null,
|
|
||||||
'couldnt_get_posts': null,
|
|
||||||
'no_post_edit_allowed': null,
|
|
||||||
'couldnt_save_post': null,
|
|
||||||
'site_already_exists': null,
|
|
||||||
'couldnt_update_site': null,
|
|
||||||
'invalid_community_name': null,
|
|
||||||
'community_already_exists': null,
|
|
||||||
'community_moderator_already_exists': null,
|
|
||||||
'community_follower_already_exists': null,
|
|
||||||
'not_a_moderator': null,
|
|
||||||
'couldnt_update_community': null,
|
|
||||||
'no_community_edit_allowed': null,
|
|
||||||
'system_err_login': null,
|
|
||||||
'community_user_already_banned': null,
|
|
||||||
'couldnt_find_that_username_or_email': null,
|
|
||||||
'password_incorrect': null,
|
|
||||||
'registration_closed': null,
|
|
||||||
'invalid_password': null,
|
|
||||||
'passwords_dont_match': null,
|
|
||||||
'captcha_incorrect': null,
|
|
||||||
'invalid_username': null,
|
|
||||||
'bio_length_overflow': null,
|
|
||||||
'couldnt_update_user': null,
|
|
||||||
'couldnt_update_private_message': null,
|
|
||||||
'couldnt_update_post': null,
|
|
||||||
'couldnt_create_private_message': null,
|
|
||||||
'no_private_message_edit_allowed': null,
|
|
||||||
'post_title_too_long': null,
|
|
||||||
'email_already_exists': null,
|
|
||||||
'user_already_exists': null,
|
|
||||||
'number_online': 'number_users_online',
|
|
||||||
};
|
|
||||||
|
|
||||||
// TODO: migrate those with changed capitalization
|
/// make all letters except the first one lower case in the base language
|
||||||
// 'number_of_comments': null,
|
final bool decapitalize;
|
||||||
|
|
||||||
|
/// arb format for the placeholder
|
||||||
|
final String format;
|
||||||
|
|
||||||
|
/// arb type for the placeholder
|
||||||
|
final String type;
|
||||||
|
|
||||||
|
const _(
|
||||||
|
this.key, {
|
||||||
|
this.rename,
|
||||||
|
this.decapitalize = false,
|
||||||
|
this.format,
|
||||||
|
this.type,
|
||||||
|
});
|
||||||
|
|
||||||
|
String get renamedKey => rename ?? key;
|
||||||
|
}
|
||||||
|
|
||||||
|
const toMigrate = <_>[
|
||||||
|
_('settings'),
|
||||||
|
_('password'),
|
||||||
|
_('email_or_username'),
|
||||||
|
_('posts'),
|
||||||
|
_('comments'),
|
||||||
|
_('modlog'),
|
||||||
|
_('community'),
|
||||||
|
_('url'),
|
||||||
|
_('title'),
|
||||||
|
_('body'),
|
||||||
|
_('nsfw'),
|
||||||
|
_('post'),
|
||||||
|
_('save'),
|
||||||
|
_('send_message'),
|
||||||
|
_('subscribed'),
|
||||||
|
_('local'),
|
||||||
|
_('all'),
|
||||||
|
_('replies'),
|
||||||
|
_('mentions'),
|
||||||
|
_('from'),
|
||||||
|
_('to'),
|
||||||
|
_('deleted', rename: 'deleted_by_creator'),
|
||||||
|
_('more'),
|
||||||
|
_('mark_as_read'),
|
||||||
|
_('mark_as_unread'),
|
||||||
|
_('reply'),
|
||||||
|
_('edit'),
|
||||||
|
_('delete'),
|
||||||
|
_('restore'),
|
||||||
|
_('yes'),
|
||||||
|
_('no'),
|
||||||
|
_('avatar'),
|
||||||
|
_('banner'),
|
||||||
|
_('display_name'),
|
||||||
|
_('bio'),
|
||||||
|
_('email'),
|
||||||
|
_('matrix_user_id', rename: 'matrix_user'),
|
||||||
|
_('sort_type'),
|
||||||
|
_('type'),
|
||||||
|
_('show_nsfw'),
|
||||||
|
_('send_notifications_to_email'),
|
||||||
|
_('delete_account'),
|
||||||
|
_('saved'),
|
||||||
|
_('communities'),
|
||||||
|
_('users'),
|
||||||
|
_('theme'),
|
||||||
|
_('language'),
|
||||||
|
_('hot'),
|
||||||
|
_('new', rename: 'new_'),
|
||||||
|
_('old'),
|
||||||
|
_('top'),
|
||||||
|
_('chat'),
|
||||||
|
_('admin'),
|
||||||
|
_('by'),
|
||||||
|
_('not_a_mod_or_admin'),
|
||||||
|
_('not_an_admin'),
|
||||||
|
_('couldnt_find_post'),
|
||||||
|
_('not_logged_in'),
|
||||||
|
_('site_ban'),
|
||||||
|
_('community_ban'),
|
||||||
|
_('downvotes_disabled'),
|
||||||
|
_('invalid_url'),
|
||||||
|
_('locked'),
|
||||||
|
_('couldnt_create_comment'),
|
||||||
|
_('couldnt_like_comment'),
|
||||||
|
_('couldnt_update_comment'),
|
||||||
|
_('no_comment_edit_allowed'),
|
||||||
|
_('couldnt_save_comment'),
|
||||||
|
_('couldnt_get_comments'),
|
||||||
|
_('report_reason_required'),
|
||||||
|
_('report_too_long'),
|
||||||
|
_('couldnt_create_report'),
|
||||||
|
_('couldnt_resolve_report'),
|
||||||
|
_('invalid_post_title'),
|
||||||
|
_('couldnt_create_post'),
|
||||||
|
_('couldnt_like_post'),
|
||||||
|
_('couldnt_find_community'),
|
||||||
|
_('couldnt_get_posts'),
|
||||||
|
_('no_post_edit_allowed'),
|
||||||
|
_('couldnt_save_post'),
|
||||||
|
_('site_already_exists'),
|
||||||
|
_('couldnt_update_site'),
|
||||||
|
_('invalid_community_name'),
|
||||||
|
_('community_already_exists'),
|
||||||
|
_('community_moderator_already_exists'),
|
||||||
|
_('community_follower_already_exists'),
|
||||||
|
_('not_a_moderator'),
|
||||||
|
_('couldnt_update_community'),
|
||||||
|
_('no_community_edit_allowed'),
|
||||||
|
_('system_err_login'),
|
||||||
|
_('community_user_already_banned'),
|
||||||
|
_('couldnt_find_that_username_or_email'),
|
||||||
|
_('password_incorrect'),
|
||||||
|
_('registration_closed'),
|
||||||
|
_('invalid_password'),
|
||||||
|
_('passwords_dont_match'),
|
||||||
|
_('captcha_incorrect'),
|
||||||
|
_('invalid_username'),
|
||||||
|
_('bio_length_overflow'),
|
||||||
|
_('couldnt_update_user'),
|
||||||
|
_('couldnt_update_private_message'),
|
||||||
|
_('couldnt_update_post'),
|
||||||
|
_('couldnt_create_private_message'),
|
||||||
|
_('no_private_message_edit_allowed'),
|
||||||
|
_('post_title_too_long'),
|
||||||
|
_('email_already_exists'),
|
||||||
|
_('user_already_exists'),
|
||||||
|
_('number_online', rename: 'number_users_online', type: 'int'),
|
||||||
|
_('number_of_comments', type: 'int', format: 'compact'),
|
||||||
|
_('number_of_posts', type: 'int', format: 'compact'),
|
||||||
|
];
|
||||||
|
|
||||||
const repoName = 'lemmy-translations';
|
const repoName = 'lemmy-translations';
|
||||||
const baseLanguage = 'en';
|
const baseLanguage = 'en';
|
||||||
|
@ -201,61 +224,65 @@ void portStrings(
|
||||||
// port all languages
|
// port all languages
|
||||||
for (final language in lemmyTranslations.keys) {
|
for (final language in lemmyTranslations.keys) {
|
||||||
if (!lemmurTranslations.containsKey(language)) {
|
if (!lemmurTranslations.containsKey(language)) {
|
||||||
lemmurTranslations[language] = {};
|
lemmurTranslations[language] = {'@@locale': language};
|
||||||
lemmurTranslations[language]['@@locale'] = language;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
for (final extract in toExtract.entries) {
|
for (final migrate in toMigrate) {
|
||||||
final key = extract.key;
|
if (!lemmyTranslations[baseLanguage].containsKey(migrate.key)) {
|
||||||
final renamedKey = extract.value ?? key;
|
printError('"${migrate.key}" does not exist in $repoName');
|
||||||
|
|
||||||
if (!lemmyTranslations[baseLanguage].containsKey(key)) {
|
|
||||||
printError('"$key" does not exist in $repoName');
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (lemmurTranslations[baseLanguage].containsKey(renamedKey) && !force) {
|
if (lemmurTranslations[baseLanguage].containsKey(migrate.renamedKey) &&
|
||||||
confirm('"$key" already exists in lemmur, overwrite?');
|
!force) {
|
||||||
|
confirm('"${migrate.key}" already exists in lemmur, overwrite?');
|
||||||
}
|
}
|
||||||
|
|
||||||
final metadata = <String, dynamic>{};
|
final variableName = RegExp(r'{{([\w_]+)}|')
|
||||||
|
.firstMatch(lemmyTranslations[baseLanguage][migrate.key])
|
||||||
|
?.group(1);
|
||||||
|
|
||||||
|
final metadata = <String, dynamic>{
|
||||||
|
if (variableName != null)
|
||||||
|
'placeholders': {
|
||||||
|
variableName: {
|
||||||
|
if (migrate.type != null) 'type': migrate.type,
|
||||||
|
if (migrate.format != null) 'format': migrate.format,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
};
|
||||||
// ignore: omit_local_variable_types
|
// ignore: omit_local_variable_types
|
||||||
String Function(Map<String, String> translations) transformer =
|
String Function(Map<String, String> translations) transformer =
|
||||||
(translations) => translations[key];
|
(translations) => translations[migrate.key];
|
||||||
|
|
||||||
// check if it has a plural form
|
// check if it has a plural form
|
||||||
if (lemmyTranslations[baseLanguage].containsKey('${key}_plural')) {
|
if (lemmyTranslations[baseLanguage].containsKey('${migrate.key}_plural')) {
|
||||||
final variable = RegExp(r'{([\w_]+)}')
|
|
||||||
.firstMatch(lemmyTranslations[baseLanguage][key])
|
|
||||||
.group(1);
|
|
||||||
|
|
||||||
transformer = (translations) {
|
transformer = (translations) {
|
||||||
if (translations[key] == null) return null;
|
if (translations[migrate.key] == null) return null;
|
||||||
|
|
||||||
final fixedVariables =
|
final fixedVariables = translations[migrate.key]
|
||||||
translations[key].replaceAll('{{$variable}}', '{$variable}');
|
.replaceAll('{{$variableName}}', '{$variableName}');
|
||||||
|
|
||||||
final pluralForm = () {
|
final pluralForm = () {
|
||||||
if (translations.containsKey('${key}_plural')) {
|
if (translations.containsKey('${migrate.key}_plural')) {
|
||||||
return translations['${key}_plural']
|
return translations['${migrate.key}_plural']
|
||||||
.replaceAll('{{$variable}}', '{$variable}');
|
.replaceAll('{{$variableName}}', '{$variableName}');
|
||||||
}
|
}
|
||||||
|
|
||||||
return null;
|
return null;
|
||||||
}();
|
}();
|
||||||
|
|
||||||
return '{$variable,plural, =1{$fixedVariables}${pluralForm != null ? ' other{$pluralForm}' : ''}}';
|
return '{$variableName,plural, =1{$fixedVariables}${pluralForm != null ? ' other{$pluralForm}' : ''}}';
|
||||||
};
|
};
|
||||||
metadata['placeholders'] = {variable: {}};
|
|
||||||
}
|
}
|
||||||
|
|
||||||
for (final trans in lemmyTranslations.entries) {
|
for (final trans in lemmyTranslations.entries) {
|
||||||
final language = trans.key;
|
final language = trans.key;
|
||||||
final strings = trans.value;
|
final strings = trans.value;
|
||||||
|
|
||||||
lemmurTranslations[language][renamedKey] = transformer(strings);
|
lemmurTranslations[language][migrate.renamedKey] = transformer(strings);
|
||||||
}
|
}
|
||||||
lemmurTranslations[baseLanguage]['@$renamedKey'] = metadata;
|
lemmurTranslations[baseLanguage]['@${migrate.renamedKey}'] = metadata;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue