From e6609a2d69a9835e6254c4acf21a77593b64e9f9 Mon Sep 17 00:00:00 2001 From: Alan Friedman Date: Sun, 25 Aug 2019 14:04:24 -0400 Subject: [PATCH] Add German, Italian, Dutch and Chinese translations (#98) --- client/src/components/Settings/index.js | 6 ++++- client/src/components/T/index.js | 9 +++---- client/src/i18n/de.json | 33 +++++++++++++++++++++++++ client/src/i18n/en.json | 3 ++- client/src/i18n/fr.json | 3 ++- client/src/i18n/index.js | 8 ++++++ client/src/i18n/it.json | 33 +++++++++++++++++++++++++ client/src/i18n/nl.json | 33 +++++++++++++++++++++++++ client/src/i18n/oc.json | 3 ++- client/src/i18n/zh-CN.json | 33 +++++++++++++++++++++++++ 10 files changed, 154 insertions(+), 10 deletions(-) create mode 100644 client/src/i18n/de.json create mode 100644 client/src/i18n/it.json create mode 100644 client/src/i18n/nl.json create mode 100644 client/src/i18n/zh-CN.json diff --git a/client/src/components/Settings/index.js b/client/src/components/Settings/index.js index 7bac0f3..b748655 100644 --- a/client/src/components/Settings/index.js +++ b/client/src/components/Settings/index.js @@ -38,12 +38,16 @@ class Settings extends Component {

-

Help us translate Darkwire!

+

diff --git a/client/src/components/T/index.js b/client/src/components/T/index.js index 6976973..9579543 100644 --- a/client/src/components/T/index.js +++ b/client/src/components/T/index.js @@ -9,7 +9,9 @@ const regex = /{(.*?)}/g; class T extends Component { render() { const t = getTranslations(this.props.language); - let string = _.get(t, this.props.path, '').split(regex); + const englishT = getTranslations('en'); + const str = _.get(t, this.props.path, '') || _.get(englishT, this.props.path, '') + let string = str.split(regex); if (this.props.data) { string = string.map(word => { if (this.props.data[word]) { @@ -21,11 +23,6 @@ class T extends Component { } return string; } - - t() { - const t = getTranslations(this.props.language); - return _.get(t, this.props.path); - } } T.propTypes = { diff --git a/client/src/i18n/de.json b/client/src/i18n/de.json new file mode 100644 index 0000000..f1cac6c --- /dev/null +++ b/client/src/i18n/de.json @@ -0,0 +1,33 @@ +{ + "aboutButton": "Über", + "aboutHeader": "Über", + "agreement": "Durch die Nutzung von Darkwire stimmen Sie unseren Nutzungsbedingungen und Nutzungsbedingungen zu", + "copyButtonTooltip": "Kopiert", + "copyRoomHeader": "Dieser Raum", + "downloadFile": "{filename} herunterladen", + "languageDropdownHeader": "Sprache", + "lockRoomHeader": "Umkleideraum", + "lockRoomText": "Wenn Sie der Raumbesitzer sind, können Sie den Raum sperren und entsperren, indem Sie auf das Schlosssymbol in der Navigationsleiste klicken. Wenn ein Raum gesperrt ist, können keine anderen Teilnehmer teilnehmen.", + "lockedRoom": "{username} hat den Raum abgeschlossen", + "lockedRoomHeader": "Dieser Raum ist verschlossen", + "nameChange": "{oldUsername} hat seinen Namen in {newUsername} geändert", + "newRoomButton": "Neuer Raum", + "roomOwnerHeader": "Raumeigentum", + "roomOwnerText": "Die Person, die den Raum erstellt hat, ist der Raumbesitzer und hat spezielle Rechte, wie die Möglichkeit, den Raum zu sperren und zu entsperren. Wenn der Eigentümer das Zimmer verlässt, übernimmt die zweite Person, die beitritt, das Eigentum. Wenn sie gehen, wird die dritte Person Eigentümer und so weiter. Der Rauminhaber hat ein Sternsymbol neben seinem Benutzernamen in der Teilnehmer-Dropdown-Liste.", + "sentFile": "Sie haben {filename} gesendet", + "settings": "die Einstellungen", + "settingsButton": "die Einstellungen", + "settingsHeader": "Einstellungen & Hilfe", + "slashCommandsBullets": ["Ändert den Benutzernamen", "führt eine Aktion aus", "löscht den Nachrichtenverlauf", "listet alle Befehle auf"], + "slashCommandsHeader": "Slash-Befehle", + "slashCommandsText": "Die folgenden Schrägstrichbefehle sind verfügbar:", + "sound": "Klingen", + "typePlaceholder": "Tippen Sie hier", + "unlockedRoom": "{username} hat den Raum freigeschaltet", + "userJoined": "{username} ist beigetreten", + "userLeft": "{username} übrig", + "userSentFile": "{username} hat Ihnen eine Datei gesendet.", + "welcomeHeader": "Willkommen bei Darkwire v2.0", + "welcomeModalCTA": "OK", + "helpTranslate": "Hilf uns, Darkwire zu übersetzen!" +} \ No newline at end of file diff --git a/client/src/i18n/en.json b/client/src/i18n/en.json index 7fd36d1..4664147 100644 --- a/client/src/i18n/en.json +++ b/client/src/i18n/en.json @@ -33,5 +33,6 @@ ], "sound": "Sound", "welcomeModalCTA": "Ok", - "lockedRoomHeader": "This room is locked" + "lockedRoomHeader": "This room is locked", + "helpTranslate": "Help us translate Darkwire!" } \ No newline at end of file diff --git a/client/src/i18n/fr.json b/client/src/i18n/fr.json index 6a57921..1f46c29 100644 --- a/client/src/i18n/fr.json +++ b/client/src/i18n/fr.json @@ -33,5 +33,6 @@ ], "sound": "Son", "welcomeModalCTA": "Ok", - "lockedRoomHeader": "Ce salon est verrouillé" + "lockedRoomHeader": "Ce salon est verrouillé", + "helpTranslate": "Aidez-nous à traduire Darkwire!" } diff --git a/client/src/i18n/index.js b/client/src/i18n/index.js index f546a90..0d76a5b 100644 --- a/client/src/i18n/index.js +++ b/client/src/i18n/index.js @@ -1,11 +1,19 @@ import en from './en'; import fr from './fr'; import oc from './oc'; +import de from './de'; +import it from './it'; +import zhCN from './zh-CN'; +import nl from './nl'; const languagesMap = { en, fr, oc, + de, + it, + zhCN, + nl } export function getTranslations(language) { diff --git a/client/src/i18n/it.json b/client/src/i18n/it.json new file mode 100644 index 0000000..15e6f59 --- /dev/null +++ b/client/src/i18n/it.json @@ -0,0 +1,33 @@ +{ + "aboutButton": "Di", + "aboutHeader": "Di", + "agreement": "Usando Darkwire, accetti la nostra Politica di utilizzo accettabile e i Termini di servizio", + "copyButtonTooltip": "Copiato", + "copyRoomHeader": "Questa stanza", + "downloadFile": "Scarica {filename}", + "languageDropdownHeader": "linguaggio", + "lockRoomHeader": "Lock Room", + "lockRoomText": "Se sei il proprietario della stanza, puoi bloccare e sbloccare la stanza facendo clic sull'icona del lucchetto nella barra di navigazione. Quando una stanza è chiusa a chiave, nessun altro partecipante potrà unirsi.", + "lockedRoom": "{username} ha bloccato la stanza", + "lockedRoomHeader": "Questa stanza è chiusa a chiave", + "nameChange": "{oldUsername} ha cambiato il nome in {newUsername}", + "newRoomButton": "Nuova stanza", + "roomOwnerHeader": "Proprietà della stanza", + "roomOwnerText": "La persona che ha creato la stanza è il proprietario della stanza e ha privilegi speciali, come la possibilità di bloccare e sbloccare la stanza. Se il proprietario lascia la stanza, la seconda persona che si unisce si assume la proprietà. Se lasciano, la terza persona diventa proprietario e così via. Il proprietario della stanza ha un'icona a forma di stella accanto al suo nome utente nel menu a discesa dei partecipanti.", + "sentFile": "Hai inviato {filename}", + "settings": "impostazioni", + "settingsButton": "impostazioni", + "settingsHeader": "Impostazioni e aiuto", + "slashCommandsBullets": ["cambia il nome utente", "esegue un'azione", "cancella la cronologia dei messaggi", "elenca tutti i comandi"], + "slashCommandsHeader": "Comandi barra", + "slashCommandsText": "Sono disponibili i seguenti comandi di barra:", + "sound": "Suono", + "typePlaceholder": "Digitare qui", + "unlockedRoom": "{username} ha sbloccato la stanza", + "userJoined": "{username} si è unito", + "userLeft": "{username} rimasto", + "userSentFile": "{username} ti ha inviato un file.", + "welcomeHeader": "Benvenuto in Darkwire v2.0", + "welcomeModalCTA": "Ok", + "helpTranslate": "Aiutaci a tradurre Darkwire!" +} \ No newline at end of file diff --git a/client/src/i18n/nl.json b/client/src/i18n/nl.json new file mode 100644 index 0000000..8420b0d --- /dev/null +++ b/client/src/i18n/nl.json @@ -0,0 +1,33 @@ +{ + "aboutButton": "Wat betreft", + "aboutHeader": "Wat betreft", + "agreement": "Door Darkwire te gebruiken, gaat u akkoord met ons Beleid voor acceptabel gebruik en onze Servicevoorwaarden", + "copyButtonTooltip": "gekopieerde", + "copyRoomHeader": "Deze kamer", + "downloadFile": "Download {filename}", + "languageDropdownHeader": "Taal", + "lockRoomHeader": "Lock Room", + "lockRoomText": "Als u de eigenaar van de ruimte bent, kunt u de ruimte vergrendelen en ontgrendelen door op het vergrendelingspictogram in de navigatiebalk te klikken. Wanneer een ruimte is vergrendeld, kunnen geen andere deelnemers deelnemen.", + "lockedRoom": "{username} heeft de kamer vergrendeld", + "lockedRoomHeader": "Deze kamer is afgesloten", + "nameChange": "{oldUsername} heeft hun naam gewijzigd in {newUsername}", + "newRoomButton": "Nieuwe kamer", + "roomOwnerHeader": "Ruimte-eigendom", + "roomOwnerText": "De persoon die de ruimte heeft gemaakt, is de eigenaar van de ruimte en heeft speciale rechten, zoals de mogelijkheid om de ruimte te vergrendelen en ontgrendelen. Als de eigenaar de kamer verlaat, neemt de tweede persoon die deelneemt het eigendom over. Als ze vertrekken, wordt de derde persoon eigenaar, enzovoort. De eigenaar van de ruimte heeft een sterpictogram naast zijn gebruikersnaam in de vervolgkeuzelijst van de deelnemers.", + "sentFile": "U heeft {filemame} verzonden", + "settings": "instellingen", + "settingsButton": "instellingen", + "settingsHeader": "Instellingen & Help", + "slashCommandsBullets": "wijzigt gebruikersnaam, voert een actie uit, wist uw berichtgeschiedenis, geeft alle opdrachten weer", + "slashCommandsHeader": "Slash-opdrachten", + "slashCommandsText": "De volgende slash-opdrachten zijn beschikbaar:", + "sound": "Geluid", + "typePlaceholder": "Typ hier", + "unlockedRoom": "{username} heeft de kamer ontgrendeld", + "userJoined": "{username} is lid geworden", + "userLeft": "{username} over", + "userSentFile": "{username} heeft u een bestand gestuurd.", + "welcomeHeader": "Welkom bij Darkwire v2.0", + "welcomeModalCTA": "OK", + "helpTranslate": "Help ons Darkwire te vertalen!" +} \ No newline at end of file diff --git a/client/src/i18n/oc.json b/client/src/i18n/oc.json index 9de045f..133a072 100644 --- a/client/src/i18n/oc.json +++ b/client/src/i18n/oc.json @@ -33,5 +33,6 @@ ], "sound": "Son", "welcomeModalCTA": "D’acòrdi", - "lockedRoomHeader": "Aquesta sala es clavada" + "lockedRoomHeader": "Aquesta sala es clavada", + "helpTranslate": "Help us translate Darkwire!" } diff --git a/client/src/i18n/zh-CN.json b/client/src/i18n/zh-CN.json new file mode 100644 index 0000000..166e022 --- /dev/null +++ b/client/src/i18n/zh-CN.json @@ -0,0 +1,33 @@ +{ + "aboutButton": "关于", + "aboutHeader": "关于", + "agreement": "使用Darkwire即表示您同意我们的可接受使用政策和服务条款", + "copyButtonTooltip": "复制", + "copyRoomHeader": "这个房间", + "downloadFile": "下载 {filename}", + "languageDropdownHeader": "语言", + "lockRoomHeader": "锁室", + "lockRoomText": "如果您是房间所有者,则可以通过单击导航栏中的锁定图标来锁定和解锁房间。当房间被锁定时,没有其他参与者可以加入。", + "lockedRoom": "{username} 锁定了房间", + "lockedRoomHeader": "这个房间是上锁的", + "nameChange": "{oldUsername}将其名称更改为{newUsername}", + "newRoomButton": "新房间", + "roomOwnerHeader": "房间所有权", + "roomOwnerText": "创建房间的人是房间所有者,并具有特殊权限,例如锁定和解锁房间的能力。如果所有者离开房间,则第二个加入的人承担所有权。如果他们离开,第三个人成为所有者,依此类推。房间所有者在参与者下拉列表中的用户名旁边有一个星形图标。", + "sentFile": "您发送了 {filename}", + "settings": "设置", + "settingsButton": "设置", + "settingsHeader": "设置和帮助", + "slashCommandsBullets": "更改用户名,执行操作,清除消息历史记录,列出所有命令", + "slashCommandsHeader": "斜线命令", + "slashCommandsText": "可以使用以下斜杠命令:", + "sound": "声音", + "typePlaceholder": "在此输入", + "unlockedRoom": "{username} 解锁了房间", + "userJoined": "{username} 已加入", + "userLeft": "{username} 离开了", + "userSentFile": "{username} 向您发送了一个文件。", + "welcomeHeader": "欢迎来到Darkwire v2.0", + "welcomeModalCTA": "好", + "helpTranslate": "帮助我们翻译Darkwire" +} \ No newline at end of file