Skip to content

Commit

Permalink
Produce failure on translation error
Browse files Browse the repository at this point in the history
  • Loading branch information
msujew committed Aug 29, 2024
1 parent ad3dd29 commit a3808e9
Show file tree
Hide file tree
Showing 17 changed files with 396 additions and 19 deletions.
5 changes: 4 additions & 1 deletion dev-packages/cli/src/theia.ts
Original file line number Diff line number Diff line change
Expand Up @@ -466,13 +466,16 @@ async function theiaCli(): Promise<void> {
}
},
handler: async ({ freeApi, deeplKey, file, sourceLanguage, languages = [] }) => {
await localizationManager.localize({
const success = await localizationManager.localize({
sourceFile: file,
freeApi: freeApi ?? true,
authKey: deeplKey,
targetLanguages: languages,
sourceLanguage
});
if (!success) {
process.exit(1);
}
}
})
.command<{
Expand Down
12 changes: 9 additions & 3 deletions dev-packages/localization-manager/src/localization-manager.ts
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@ export class LocalizationManager {

constructor(private localizationFn = deepl) { }

async localize(options: LocalizationOptions): Promise<void> {
async localize(options: LocalizationOptions): Promise<boolean> {
let source: Localization = {};
const cwd = process.env.INIT_CWD || process.cwd();
const sourceFile = path.resolve(cwd, options.sourceFile);
Expand Down Expand Up @@ -66,7 +66,8 @@ export class LocalizationManager {
existingTranslations.set(targetLanguage, {});
}
}
await Promise.all(languages.map(language => this.translateLanguage(source, existingTranslations.get(language)!, language, options)));
const results = await Promise.all(languages.map(language => this.translateLanguage(source, existingTranslations.get(language)!, language, options)));
let result = results.reduce((acc, val) => acc && val, true);

for (const targetLanguage of languages) {
const targetPath = this.translationFileName(sourceFile, targetLanguage);
Expand All @@ -75,8 +76,10 @@ export class LocalizationManager {
await fs.writeJson(targetPath, sortLocalization(translation), { spaces: 2 });
} catch {
console.error(chalk.red(`Error writing translated file to '${targetPath}'`));
result = false;
}
}
return result;
}

protected translationFileName(original: string, language: string): string {
Expand All @@ -85,7 +88,7 @@ export class LocalizationManager {
return path.join(directory, `${fileName}.${language.toLowerCase()}.json`);
}

async translateLanguage(source: Localization, target: Localization, targetLanguage: string, options: LocalizationOptions): Promise<void> {
async translateLanguage(source: Localization, target: Localization, targetLanguage: string, options: LocalizationOptions): Promise<boolean> {
const map = this.buildLocalizationMap(source, target);
if (map.text.length > 0) {
try {
Expand All @@ -102,11 +105,14 @@ export class LocalizationManager {
map.localize(i, this.removeIgnoreTags(text));
});
console.log(chalk.green(`Successfully translated ${map.text.length} value${map.text.length > 1 ? 's' : ''} for language "${targetLanguage}"`));
return true;
} catch (e) {
console.log(chalk.red(`Could not translate into language "${targetLanguage}"`), e);
return false;
}
} else {
console.log(`No translation necessary for language "${targetLanguage}"`);
return true;
}
}

Expand Down
28 changes: 27 additions & 1 deletion packages/core/i18n/nls.cs.json
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,33 @@
"noCallers": "Nebyl zjištěn žádný volající.",
"open": "Hierarchie otevřených výzev"
},
"collaboration": {},
"collaboration": {
"collaborate": "Spolupracujte",
"collaboration": "Spolupráce",
"collaborationWorkspace": "Pracovní prostor pro spolupráci",
"connected": "Připojeno",
"connectedSession": "Připojení k relaci spolupráce",
"copiedInvitation": "Kód pozvánky zkopírovaný do schránky.",
"copyAgain": "Znovu kopírovat",
"createRoom": "Vytvoření nové relace spolupráce",
"creatingRoom": "Vytvoření relace",
"end": "Ukončení relace spolupráce",
"endDetail": "Ukončit relaci, ukončit sdílení obsahu a zrušit přístup ostatním uživatelům.",
"enterCode": "Zadejte kód relace spolupráce",
"failedCreate": "Nepodařilo se vytvořit prostor: {0}",
"failedJoin": "Nepodařilo se připojit k místnosti: {0}",
"invite": "Pozvat ostatní",
"inviteDetail": "Zkopírujte si kód pozvánky, abyste ji mohli sdílet s ostatními a připojit se k sezení.",
"joinRoom": "Připojte se k zasedání o spolupráci",
"joiningRoom": "Připojení k relaci",
"leave": "Opustit zasedání pro spolupráci",
"leaveDetail": "Odpojte se od aktuální relace spolupráce a zavřete pracovní prostor.",
"selectCollaboration": "Vyberte možnost spolupráce",
"sharedSession": "Společná relace spolupráce",
"startSession": "Zahájení relace spolupráce nebo připojení se k ní",
"userWantsToJoin": "Uživatel '{0}' se chce připojit k místnosti pro spolupráci",
"whatToDo": "Co byste chtěli dělat s dalšími spolupracovníky?"
},
"core": {
"about": {
"compatibility": "{0} Kompatibilita",
Expand Down
28 changes: 27 additions & 1 deletion packages/core/i18n/nls.de.json
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,33 @@
"noCallers": "Es wurden keine Anrufer entdeckt.",
"open": "Öffne Aufruf-Hierarchie"
},
"collaboration": {},
"collaboration": {
"collaborate": "Zusammenarbeiten",
"collaboration": "Zusammenarbeit",
"collaborationWorkspace": "Arbeitsbereich für Zusammenarbeit",
"connected": "Verbunden",
"connectedSession": "Verbunden mit einer Sitzung zur Zusammenarbeit",
"copiedInvitation": "Einladungscode in die Zwischenablage kopiert.",
"copyAgain": "Erneut kopieren",
"createRoom": "Neue Collaboration-Sitzung erstellen",
"creatingRoom": "Sitzung erstellen",
"end": "Kollaborationssitzung beenden",
"endDetail": "Beenden Sie die Sitzung, beenden Sie die Freigabe von Inhalten und sperren Sie den Zugang für andere.",
"enterCode": "Enter collaboration session code",
"failedCreate": "Es konnte kein Raum erstellt werden: {0}",
"failedJoin": "Verbindung zum Raum fehlgeschlagen: {0}",
"invite": "Andere einladen",
"inviteDetail": "Kopieren Sie den Einladungscode, um ihn mit anderen zu teilen und an der Sitzung teilzunehmen.",
"joinRoom": "An der Collaboration-Sitzung teilnehmen",
"joiningRoom": "Beitrittssitzung",
"leave": "Kollaborationssitzung verlassen",
"leaveDetail": "Trennen Sie die Verbindung zur aktuellen Zusammenarbeitssitzung und schließen Sie den Arbeitsbereich.",
"selectCollaboration": "Wählen Sie die Option Zusammenarbeit",
"sharedSession": "Gemeinsame Sitzung zur Zusammenarbeit",
"startSession": "Zusammenarbeitssitzung starten oder beitreten",
"userWantsToJoin": "Benutzer '{0}' möchte dem Collaboration Room beitreten",
"whatToDo": "Was würden Sie gerne mit anderen Mitarbeitern machen?"
},
"core": {
"about": {
"compatibility": "{0} Kompatibilität",
Expand Down
28 changes: 27 additions & 1 deletion packages/core/i18n/nls.es.json
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,33 @@
"noCallers": "No se ha detectado ninguna llamada.",
"open": "Jerarquía de la convocatoria abierta"
},
"collaboration": {},
"collaboration": {
"collaborate": "Colabore",
"collaboration": "Colaboración",
"collaborationWorkspace": "Espacio de trabajo colaborativo",
"connected": "Conectado",
"connectedSession": "Conectado a una sesión de colaboración",
"copiedInvitation": "Código de invitación copiado en el portapapeles.",
"copyAgain": "Copiar de nuevo",
"createRoom": "Crear una nueva sesión de colaboración",
"creatingRoom": "Crear sesión",
"end": "Fin de la sesión de colaboración",
"endDetail": "Finalizar la sesión, dejar de compartir contenidos y revocar el acceso a otras personas.",
"enterCode": "Introduzca el código de la sesión de colaboración",
"failedCreate": "No se ha podido crear la sala: {0}",
"failedJoin": "No se ha podido entrar en la sala: {0}",
"invite": "Invitar a otros",
"inviteDetail": "Copie el código de invitación para compartirlo con otras personas y unirse a la sesión.",
"joinRoom": "Unirse a la sesión de colaboración",
"joiningRoom": "Sesión inaugural",
"leave": "Abandonar la sesión de colaboración",
"leaveDetail": "Desconectar de la sesión de colaboración actual y cerrar el espacio de trabajo.",
"selectCollaboration": "Seleccione la opción de colaboración",
"sharedSession": "Compartió una sesión de colaboración",
"startSession": "Iniciar o unirse a una sesión de colaboración",
"userWantsToJoin": "Usuario '{0}' quiere unirse a la sala de colaboración",
"whatToDo": "¿Qué le gustaría hacer con otros colaboradores?"
},
"core": {
"about": {
"compatibility": "{0} Compatibilidad",
Expand Down
28 changes: 27 additions & 1 deletion packages/core/i18n/nls.fr.json
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,33 @@
"noCallers": "Aucun appelant n'a été détecté.",
"open": "Hiérarchie des appels ouverts"
},
"collaboration": {},
"collaboration": {
"collaborate": "Collaborer",
"collaboration": "Collaboration",
"collaborationWorkspace": "Espace de travail collaboratif",
"connected": "Connecté",
"connectedSession": "Connecté à une session de collaboration",
"copiedInvitation": "Code d'invitation copié dans le presse-papiers.",
"copyAgain": "Copier à nouveau",
"createRoom": "Créer une nouvelle session de collaboration",
"creatingRoom": "Création d'une session",
"end": "Fin de la session de collaboration",
"endDetail": "Mettre fin à la session, cesser le partage de contenu et révoquer l'accès pour d'autres personnes.",
"enterCode": "Enter collaboration session code",
"failedCreate": "Échec de la création d'une salle : {0}",
"failedJoin": "N'a pas réussi à rejoindre la salle : {0}",
"invite": "Inviter d'autres personnes",
"inviteDetail": "Copiez le code d'invitation pour le partager avec d'autres personnes afin de participer à la session.",
"joinRoom": "Participer à une session de collaboration",
"joiningRoom": "Session d'adhésion",
"leave": "Quitter la session de collaboration",
"leaveDetail": "Se déconnecter de la session de collaboration en cours et fermer l'espace de travail.",
"selectCollaboration": "Sélectionner l'option de collaboration",
"sharedSession": "Partager une session de collaboration",
"startSession": "Démarrer ou rejoindre une session de collaboration",
"userWantsToJoin": "User '{0}' wants to join the collaboration room",
"whatToDo": "Qu'aimeriez-vous faire avec d'autres collaborateurs ?"
},
"core": {
"about": {
"compatibility": "{0} Compatibilité",
Expand Down
28 changes: 27 additions & 1 deletion packages/core/i18n/nls.hu.json
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,33 @@
"noCallers": "Nem észleltek hívókat.",
"open": "Nyílt felhívás hierarchia"
},
"collaboration": {},
"collaboration": {
"collaborate": "Együttműködés",
"collaboration": "Együttműködés",
"collaborationWorkspace": "Együttműködési munkaterület",
"connected": "Csatlakoztatva",
"connectedSession": "Együttműködési munkamenethez csatlakoztatva",
"copiedInvitation": "Meghívó kódja a vágólapra másolva.",
"copyAgain": "Ismétlemásolás",
"createRoom": "Új együttműködési munkamenet létrehozása",
"creatingRoom": "Munkamenet létrehozása",
"end": "Együttműködési ülés befejezése",
"endDetail": "A munkamenet megszüntetése, a tartalom megosztásának megszüntetése és a hozzáférés visszavonása mások számára.",
"enterCode": "Adja meg az együttműködési munkamenet kódját",
"failedCreate": "Nem sikerült helyet létrehozni: {0}",
"failedJoin": "Nem sikerült csatlakozni a szobához: {0}",
"invite": "Mások meghívása",
"inviteDetail": "Másolja ki a meghívó kódját, hogy másokkal is megoszthassa, és csatlakozhasson az üléshez.",
"joinRoom": "Csatlakozzon az együttműködési üléshez",
"joiningRoom": "Csatlakozási munkamenet",
"leave": "Hagyja el az együttműködési ülést",
"leaveDetail": "Szakítsa meg a kapcsolatot az aktuális együttműködési munkamenetből, és zárja be a munkaterületet.",
"selectCollaboration": "Együttműködési lehetőség kiválasztása",
"sharedSession": "Közös együttműködési munkamenet",
"startSession": "Együttműködési munkamenet indítása vagy ahhoz való csatlakozás",
"userWantsToJoin": "Felhasználó '{0}' csatlakozni szeretne a kollaborációs szobához",
"whatToDo": "Mit szeretnél csinálni más munkatársakkal?"
},
"core": {
"about": {
"compatibility": "{0} Kompatibilitás",
Expand Down
28 changes: 27 additions & 1 deletion packages/core/i18n/nls.it.json
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,33 @@
"noCallers": "Non sono stati rilevati chiamanti.",
"open": "Gerarchia delle chiamate aperte"
},
"collaboration": {},
"collaboration": {
"collaborate": "Collaborate",
"collaboration": "Collaborazione",
"collaborationWorkspace": "Spazio di lavoro per la collaborazione",
"connected": "Collegato",
"connectedSession": "Collegato a una sessione di collaborazione",
"copiedInvitation": "Codice invito copiato negli appunti.",
"copyAgain": "Copia di nuovo",
"createRoom": "Creare una nuova sessione di collaborazione",
"creatingRoom": "Creazione di una sessione",
"end": "Fine della sessione di collaborazione",
"endDetail": "Terminare la sessione, interrompere la condivisione dei contenuti e revocare l'accesso ad altri.",
"enterCode": "Inserire il codice della sessione di collaborazione",
"failedCreate": "Impossibile creare una stanza: {0}",
"failedJoin": "Impossibile unirsi alla stanza: {0}",
"invite": "Invitare altri",
"inviteDetail": "Copiare il codice di invito per condividerlo con altri e partecipare alla sessione.",
"joinRoom": "Partecipa alla sessione di collaborazione",
"joiningRoom": "Sessione di adesione",
"leave": "Lasciare la sessione di collaborazione",
"leaveDetail": "Disconnettersi dalla sessione di collaborazione in corso e chiudere l'area di lavoro.",
"selectCollaboration": "Selezionare l'opzione di collaborazione",
"sharedSession": "Condivisione di una sessione di collaborazione",
"startSession": "Avviare o partecipare a una sessione di collaborazione",
"userWantsToJoin": "L'utente '{0}' vuole unirsi alla sala di collaborazione",
"whatToDo": "Cosa le piacerebbe fare con altri collaboratori?"
},
"core": {
"about": {
"compatibility": "{0} Compatibilità",
Expand Down
28 changes: 27 additions & 1 deletion packages/core/i18n/nls.ja.json
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,33 @@
"noCallers": "発信者は検出されていません。",
"open": "オープンコールヒエラルキー"
},
"collaboration": {},
"collaboration": {
"collaborate": "コラボレーション",
"collaboration": "コラボレーション",
"collaborationWorkspace": "コラボレーション・ワークスペース",
"connected": "接続済み",
"connectedSession": "コラボレーション・セッションに接続",
"copiedInvitation": "招待状コードがクリップボードにコピーされました。",
"copyAgain": "コピー・アゲイン",
"createRoom": "新しいコラボレーション・セッションの作成",
"creatingRoom": "セッションの作成",
"end": "コラボレーション・セッション終了",
"endDetail": "セッションを終了し、コンテンツの共有を停止し、他の人のアクセスを取り消す。",
"enterCode": "コラボレーションセッションコードを入力",
"failedCreate": "部屋の作成に失敗しました:{0}",
"failedJoin": "入室に失敗:{0}",
"invite": "他の人を招待する",
"inviteDetail": "招待コードをコピーして他の人と共有し、セッションに参加してください。",
"joinRoom": "コラボレーション・セッションに参加",
"joiningRoom": "セッションへの参加",
"leave": "コラボレーション・セッション",
"leaveDetail": "現在のコラボレーションセッションから切断し、ワークスペースを閉じます。",
"selectCollaboration": "コラボレーション・オプションを選択",
"sharedSession": "コラボレーション・セッションを共有",
"startSession": "コラボレーションセッションの開始または参加",
"userWantsToJoin": "ユーザー '{0}' がコラボレーションルームへの参加を希望しています。",
"whatToDo": "他の協力者とどんなことをしたいですか?"
},
"core": {
"about": {
"compatibility": "{0} 互換性",
Expand Down
28 changes: 27 additions & 1 deletion packages/core/i18n/nls.ko.json
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,33 @@
"noCallers": "발신자가 감지되지 않았습니다.",
"open": "오픈 콜 계층 구조"
},
"collaboration": {},
"collaboration": {
"collaborate": "협업",
"collaboration": "협업",
"collaborationWorkspace": "협업 작업 공간",
"connected": "연결됨",
"connectedSession": "공동 작업 세션에 연결됨",
"copiedInvitation": "초대 코드가 클립보드에 복사되었습니다.",
"copyAgain": "다시 복사",
"createRoom": "새 공동 작업 세션 만들기",
"creatingRoom": "세션 만들기",
"end": "협업 세션 종료",
"endDetail": "세션을 종료하고, 콘텐츠 공유를 중단하고, 다른 사용자의 액세스 권한을 취소합니다.",
"enterCode": "공동 작업 세션 코드 입력",
"failedCreate": "공간을 만들지 못했습니다: {0}",
"failedJoin": "방에 참여하지 못했습니다: {0}",
"invite": "다른 사람 초대",
"inviteDetail": "초대 코드를 복사하여 다른 사람들과 공유하여 세션에 참여합니다.",
"joinRoom": "협업 세션 참여",
"joiningRoom": "세션 참여",
"leave": "공동 작업 세션 나가기",
"leaveDetail": "현재 공동 작업 세션에서 연결을 끊고 워크스페이스를 닫습니다.",
"selectCollaboration": "협업 옵션 선택",
"sharedSession": "공동 작업 세션 공유",
"startSession": "공동 작업 세션 시작 또는 참여",
"userWantsToJoin": "사용자 '{0}' 가 공동 작업실에 참여하려고 합니다.",
"whatToDo": "다른 공동 작업자들과 함께 무엇을 하고 싶으신가요?"
},
"core": {
"about": {
"compatibility": "{0} 호환성",
Expand Down
Loading

0 comments on commit a3808e9

Please sign in to comment.