Updated translations using new AI Engine!
This commit is contained in:
parent
88d21c2101
commit
85bf314bc4
@ -1,18 +0,0 @@
|
|||||||
@echo off
|
|
||||||
rem https://github.com/settings/personal-access-tokens
|
|
||||||
|
|
||||||
rem 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
|
|
||||||
|
|
||||||
rem this can store the github token in the environment variable GITHUB_TOKEN, which is used by the sync-locales.ps1 script
|
|
||||||
rem setx GITHUB_TOKEN "%(gh auth token)%"
|
|
||||||
|
|
||||||
rem this is for github copilot, but it's blocked
|
|
||||||
rem pwsh ./sync-locales.ps1 -GitHubToken "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"
|
|
||||||
rem powershell -ExecutionPolicy Bypass -File sync-locales.ps1 -GitHubToken "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"
|
|
||||||
rem powershell -NoProfile -ExecutionPolicy Bypass -File "sync-locales.ps1" -GitHubToken "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"
|
|
||||||
|
|
||||||
cd /d "%~dp0"
|
|
||||||
|
|
||||||
echo Running Azure OpenAI locale sync...
|
|
||||||
|
|
||||||
pwsh -NoProfile -ExecutionPolicy Bypass -File "%~dp0sync-locales-azure.ps1" -AzureOpenAIEndpoint "https://cjdopenai.openai.azure.com/" -AzureOpenAIApiKey "9atLPrU05kMV2sFXCduLFfRJHnneF1KFZgmJqO42UuH0PxptagW3JQQJ99CBACmepeSXJ3w3AAABACOGvB4E" -AzureOpenAIDeployment "gpt-4o-mini"
|
|
||||||
@ -1,47 +0,0 @@
|
|||||||
#You will need Microsoft Copilot CLI installed to run this script use this to install the command line tool:
|
|
||||||
# winget install Microsoft.Copilot
|
|
||||||
|
|
||||||
# pwsh ./Translate-Locale.ps1 `
|
|
||||||
# -SourceFile "./public/locales/en-GB/common.json" `
|
|
||||||
# -TargetLocale "fr-FR" `
|
|
||||||
# -OutputFile "./public/locales/fr-FR/common.json"
|
|
||||||
|
|
||||||
# pwsh ./Translate-Locale.ps1 `
|
|
||||||
# -SourceFile "./public/locales/en-GB/common.json" `
|
|
||||||
# -TargetLocale "en-US" `
|
|
||||||
# -OutputFile "./public/locales/en-US/common.json"
|
|
||||||
|
|
||||||
# pwsh ./Translate-Locale.ps1 `
|
|
||||||
# -SourceFile "./public/locales/en-GB/common.json" `
|
|
||||||
# -TargetLocale "fr-CA" `
|
|
||||||
# -OutputFile "./public/locales/fr-CA/common.json"
|
|
||||||
|
|
||||||
|
|
||||||
param(
|
|
||||||
[Parameter(Mandatory=$true)]
|
|
||||||
[string]$SourceFile, # en-GB.json
|
|
||||||
[Parameter(Mandatory=$true)]
|
|
||||||
[string]$TargetLocale, # fr-FR, fr-CA, en-US, etc.
|
|
||||||
[Parameter(Mandatory=$true)]
|
|
||||||
[string]$OutputFile # output JSON file
|
|
||||||
)
|
|
||||||
|
|
||||||
# Load the source JSON
|
|
||||||
$sourceJson = Get-Content $SourceFile -Raw
|
|
||||||
|
|
||||||
# Build the translation prompt
|
|
||||||
$prompt = @"
|
|
||||||
Translate the following JSON values into $TargetLocale.
|
|
||||||
Keep the keys exactly the same.
|
|
||||||
Return valid JSON only.
|
|
||||||
|
|
||||||
$sourceJson
|
|
||||||
"@
|
|
||||||
|
|
||||||
# Call Copilot CLI
|
|
||||||
$translated = copilot $prompt
|
|
||||||
|
|
||||||
# Save the result
|
|
||||||
$translated | Out-File $OutputFile -Encoding UTF8
|
|
||||||
|
|
||||||
Write-Host "Generated $TargetLocale translation: $OutputFile"
|
|
||||||
@ -1,12 +1,14 @@
|
|||||||
{
|
{
|
||||||
"SaveChangesToLinkSSOAccount": "Запазете промените, за да стартирате процеса за свързване на вашия SSO акаунт.",
|
|
||||||
"Account": "Акаунт",
|
"Account": "Акаунт",
|
||||||
"Activate": "Активиране",
|
"Activate": "Активиране",
|
||||||
"Active": "Активен",
|
"Active": "Активен",
|
||||||
|
"ActivityNameTemplate": "Шаблон за назив активности",
|
||||||
"Add": "Добавяне",
|
"Add": "Добавяне",
|
||||||
"AddDomain": "Добавяне на домейн",
|
"AddDomain": "Добавяне на домейн",
|
||||||
"Address": "Адрес",
|
"AddTask": "Додай задатак",
|
||||||
"AddUser": "Добавяне на потребител",
|
"AddUser": "Добавяне на потребител",
|
||||||
|
"AddWorkflowTemplate": "Додајте шаблон радног процеса.",
|
||||||
|
"Address": "Адрес",
|
||||||
"Admin": "Администратор",
|
"Admin": "Администратор",
|
||||||
"Allowed": "Разрешено",
|
"Allowed": "Разрешено",
|
||||||
"AnEmailWithPasswordResetLinkHasBeenSent": "Изпратен е имейл с връзка за нулиране на паролата.",
|
"AnEmailWithPasswordResetLinkHasBeenSent": "Изпратен е имейл с връзка за нулиране на паролата.",
|
||||||
@ -50,15 +52,13 @@
|
|||||||
"DisplayName": "Показвано име",
|
"DisplayName": "Показвано име",
|
||||||
"Domain": "Домейн",
|
"Domain": "Домейн",
|
||||||
"DomainEdited": "Домейнът е редактиран",
|
"DomainEdited": "Домейнът е редактиран",
|
||||||
"e-print": "e-print",
|
|
||||||
"e-suite": "e-suite",
|
|
||||||
"e-suiteLogo": "Лого на e-suite",
|
|
||||||
"Edit": "Редактиране",
|
|
||||||
"EditDomain": "Редактиране на домейн",
|
|
||||||
"EditUser": "Редактиране на потребител",
|
|
||||||
"EFlowAppId": "e-flow AppId",
|
"EFlowAppId": "e-flow AppId",
|
||||||
"EFlowCategoryId": "e-flow CategoryId",
|
"EFlowCategoryId": "e-flow CategoryId",
|
||||||
"EFlowHostname": "e-flow hostname",
|
"EFlowHostname": "e-flow hostname",
|
||||||
|
"Edit": "Редактиране",
|
||||||
|
"EditDomain": "Редактиране на домейн",
|
||||||
|
"EditUser": "Редактиране на потребител",
|
||||||
|
"EditWorkflowTemplate": "Измена шаблона радног процеса",
|
||||||
"Email": "Имейл",
|
"Email": "Имейл",
|
||||||
"EmailTemplateSaved": "Имейл шаблонът е запазен",
|
"EmailTemplateSaved": "Имейл шаблонът е запазен",
|
||||||
"Enabled": "Активиран",
|
"Enabled": "Активиран",
|
||||||
@ -73,10 +73,10 @@
|
|||||||
"FirstName": "Име",
|
"FirstName": "Име",
|
||||||
"ForgottenPassword": "Забравена парола",
|
"ForgottenPassword": "Забравена парола",
|
||||||
"Form": "Формуляр",
|
"Form": "Формуляр",
|
||||||
"Forms": "Формуляри",
|
|
||||||
"FormTemplate": "Шаблон на формуляр",
|
"FormTemplate": "Шаблон на формуляр",
|
||||||
"FormTemplateEdited": "Шаблонът на формуляра е редактиран",
|
"FormTemplateEdited": "Шаблонът на формуляра е редактиран",
|
||||||
"FormTemplateManager": "Мениджър на шаблони за формуляри",
|
"FormTemplateManager": "Мениджър на шаблони за формуляри",
|
||||||
|
"Forms": "Формуляри",
|
||||||
"General": "Общи",
|
"General": "Общи",
|
||||||
"Glossaries": "Речници",
|
"Glossaries": "Речници",
|
||||||
"Glossary": "Речник",
|
"Glossary": "Речник",
|
||||||
@ -85,17 +85,17 @@
|
|||||||
"GlossaryManager": "Мениджър на речници",
|
"GlossaryManager": "Мениджър на речници",
|
||||||
"Group": "Група",
|
"Group": "Група",
|
||||||
"Home": "Начало",
|
"Home": "Начало",
|
||||||
"Id": "Id",
|
|
||||||
"Increment": "Стъпка",
|
|
||||||
"IPAddress": "IP адрес",
|
"IPAddress": "IP адрес",
|
||||||
"IPAddressUnblocked": "IP адрес '{{ip}}' е деблокиран.",
|
"IPAddressUnblocked": "IP адрес '{{ip}}' е деблокиран.",
|
||||||
|
"Id": "Id",
|
||||||
|
"Increment": "Стъпка",
|
||||||
"IsPublic": "Публичен",
|
"IsPublic": "Публичен",
|
||||||
"Items": "Елементи",
|
"Items": "Елементи",
|
||||||
"LastName": "Фамилия",
|
"LastName": "Фамилия",
|
||||||
"LastUpdated": "Последна актуализация",
|
"LastUpdated": "Последна актуализация",
|
||||||
"Loading": "Зареждане",
|
"Loading": "Зареждане",
|
||||||
"LoginMethod": "Метод на вход",
|
|
||||||
"LoggingOut": "Излизане",
|
"LoggingOut": "Излизане",
|
||||||
|
"LoginMethod": "Метод на вход",
|
||||||
"Logout": "Изход",
|
"Logout": "Изход",
|
||||||
"Mail": "Поща",
|
"Mail": "Поща",
|
||||||
"MailTemplates": "Имейл шаблони",
|
"MailTemplates": "Имейл шаблони",
|
||||||
@ -131,10 +131,10 @@
|
|||||||
"Password": "Парола",
|
"Password": "Парола",
|
||||||
"PasswordIsRequired": "Паролата е задължителна",
|
"PasswordIsRequired": "Паролата е задължителна",
|
||||||
"PasswordMinLength": "Паролата трябва да е поне {{minPasswordLength}} символа",
|
"PasswordMinLength": "Паролата трябва да е поне {{minPasswordLength}} символа",
|
||||||
"PasswordMinSymbols": "Паролата трябва да съдържа поне {{minSymbols}} символ(а)",
|
|
||||||
"PasswordMinNumbers": "Паролата трябва да съдържа поне {{minNumbers}} цифра(и)",
|
|
||||||
"PasswordMinUppercase": "Паролата трябва да съдържа поне {{minUppercase}} главна буква",
|
|
||||||
"PasswordMinLowercase": "Паролата трябва да съдържа поне {{minLowercase}} малка буква",
|
"PasswordMinLowercase": "Паролата трябва да съдържа поне {{minLowercase}} малка буква",
|
||||||
|
"PasswordMinNumbers": "Паролата трябва да съдържа поне {{minNumbers}} цифра(и)",
|
||||||
|
"PasswordMinSymbols": "Паролата трябва да съдържа поне {{minSymbols}} символ(а)",
|
||||||
|
"PasswordMinUppercase": "Паролата трябва да съдържа поне {{minUppercase}} главна буква",
|
||||||
"PasswordsMustMatch": "Трябва да въведете същата нова парола за потвърждение",
|
"PasswordsMustMatch": "Трябва да въведете същата нова парола за потвърждение",
|
||||||
"Pattern": "Шаблон",
|
"Pattern": "Шаблон",
|
||||||
"Pending": "Изчаква",
|
"Pending": "Изчаква",
|
||||||
@ -146,6 +146,7 @@
|
|||||||
"Required": "Задължително",
|
"Required": "Задължително",
|
||||||
"ResendConfirm": "Изпрати повторно потвърждение",
|
"ResendConfirm": "Изпрати повторно потвърждение",
|
||||||
"ResetPassword": "Нулиране на парола",
|
"ResetPassword": "Нулиране на парола",
|
||||||
|
"ResolveAllValidation": "Решите све грешке при верификацији.",
|
||||||
"Role": "Роля",
|
"Role": "Роля",
|
||||||
"RoleAccess": "Достъп на роля",
|
"RoleAccess": "Достъп на роля",
|
||||||
"RoleAccessUpdated": "Достъпът на ролята е актуализиран успешно.",
|
"RoleAccessUpdated": "Достъпът на ролята е актуализиран успешно.",
|
||||||
@ -153,6 +154,7 @@
|
|||||||
"RolloverType": "Тип прехвърляне",
|
"RolloverType": "Тип прехвърляне",
|
||||||
"Save": "Запази",
|
"Save": "Запази",
|
||||||
"SaveAndClose": "Запази и затвори",
|
"SaveAndClose": "Запази и затвори",
|
||||||
|
"SaveChangesToLinkSSOAccount": "Запазете промените, за да стартирате процеса за свързване на вашия SSO акаунт.",
|
||||||
"SecurityRoles": "Роли за сигурност",
|
"SecurityRoles": "Роли за сигурност",
|
||||||
"Seed": "Seed",
|
"Seed": "Seed",
|
||||||
"Sequence": "Последователност",
|
"Sequence": "Последователност",
|
||||||
@ -177,6 +179,7 @@
|
|||||||
"Subject": "Тема",
|
"Subject": "Тема",
|
||||||
"Support": "Поддръжка",
|
"Support": "Поддръжка",
|
||||||
"SupportingData": "Допълнителни данни",
|
"SupportingData": "Допълнителни данни",
|
||||||
|
"TasksValidationError": "Конфигурација задатака је неважећа.",
|
||||||
"TemplateIdCannotBeNull": "Template Id не може да бъде null",
|
"TemplateIdCannotBeNull": "Template Id не може да бъде null",
|
||||||
"TemplateUnknown": "Неизвестен шаблон",
|
"TemplateUnknown": "Неизвестен шаблон",
|
||||||
"Text": "Текст",
|
"Text": "Текст",
|
||||||
@ -201,7 +204,11 @@
|
|||||||
"ValidIssuer": "Valid Issuer",
|
"ValidIssuer": "Valid Issuer",
|
||||||
"Version": "Версия",
|
"Version": "Версия",
|
||||||
"VersionCannotBeNull": "Версията не може да бъде null",
|
"VersionCannotBeNull": "Версията не може да бъде null",
|
||||||
|
"WorkflowTemplateName": "Име шаблона радног процеса",
|
||||||
"WorkflowTemplates": "Шаблони за работни процеси",
|
"WorkflowTemplates": "Шаблони за работни процеси",
|
||||||
"Year": "Година",
|
"Year": "Година",
|
||||||
"YourProfileSettingsHaveBeenSaved": "Настройките на профила ви са запазени"
|
"YourProfileSettingsHaveBeenSaved": "Настройките на профила ви са запазени",
|
||||||
}
|
"e-print": "e-print",
|
||||||
|
"e-suite": "e-suite",
|
||||||
|
"e-suiteLogo": "Лого на e-suite"
|
||||||
|
}
|
||||||
@ -2,7 +2,7 @@
|
|||||||
"island": {
|
"island": {
|
||||||
"loadError": "Неуспешно зареждане на този раздел.",
|
"loadError": "Неуспешно зареждане на този раздел.",
|
||||||
"networkError": "Мрежова грешка при запазване.",
|
"networkError": "Мрежова грешка при запазване.",
|
||||||
"serverError": "Сървърна грешка при запазване.",
|
"saveSuccess": "Успешно запазено.",
|
||||||
"saveSuccess": "Успешно запазено."
|
"serverError": "Сървърна грешка при запазване."
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -3,4 +3,4 @@
|
|||||||
"DisableAuthenticator": "Деактивиране на двуфакторното удостоверяване",
|
"DisableAuthenticator": "Деактивиране на двуфакторното удостоверяване",
|
||||||
"PasswordReset": "Нулиране на парола",
|
"PasswordReset": "Нулиране на парола",
|
||||||
"PasswordResetCompleted": "Потвърждение за нулиране на паролата"
|
"PasswordResetCompleted": "Потвърждение за нулиране на паролата"
|
||||||
}
|
}
|
||||||
6
public/locales/bg/raci.json
Normal file
6
public/locales/bg/raci.json
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
{
|
||||||
|
"Accountable": "Отговоран",
|
||||||
|
"Consulted": "Порадили се",
|
||||||
|
"Informed": "Информисани",
|
||||||
|
"Responsible": "Одговоран"
|
||||||
|
}
|
||||||
14
public/locales/bg/taskTypes.json
Normal file
14
public/locales/bg/taskTypes.json
Normal file
@ -0,0 +1,14 @@
|
|||||||
|
{
|
||||||
|
"AdhocApprovalTask": "Импровизовано одобрење",
|
||||||
|
"ApprovalTask": "Одобрење",
|
||||||
|
"AssetUploadTask": "Учитавање датотека",
|
||||||
|
"BasicTask": "Базично",
|
||||||
|
"ContentCollationTask": "Колекционирање садржаја",
|
||||||
|
"FileReleaseTask": "Оприлачење датотеке",
|
||||||
|
"FormDataInputTask": "Унос података у формулар",
|
||||||
|
"LinkActivityTask": "Активност преко линка",
|
||||||
|
"MilestoneTask": "Милинјум",
|
||||||
|
"StageTask": "Позориште",
|
||||||
|
"VisualBriefReviewTask": "Визуелни преглед",
|
||||||
|
"VisualBriefUploadTask": "Уплођивање визуелног сажетка"
|
||||||
|
}
|
||||||
@ -1,12 +1,14 @@
|
|||||||
{
|
{
|
||||||
"SaveChangesToLinkSSOAccount": "Speichern Sie die Änderungen, um den Prozess zum Verknüpfen Ihres SSO-Kontos zu starten.",
|
|
||||||
"Account": "Konto",
|
"Account": "Konto",
|
||||||
"Activate": "Aktivieren",
|
"Activate": "Aktivieren",
|
||||||
"Active": "Aktiv",
|
"Active": "Aktiv",
|
||||||
|
"ActivityNameTemplate": "Vorlage für den Namen der Aktivität",
|
||||||
"Add": "Hinzufügen",
|
"Add": "Hinzufügen",
|
||||||
"AddDomain": "Domain hinzufügen",
|
"AddDomain": "Domain hinzufügen",
|
||||||
"Address": "Adresse",
|
"AddTask": "Zuweisung einer Aufgabe",
|
||||||
"AddUser": "Benutzer hinzufügen",
|
"AddUser": "Benutzer hinzufügen",
|
||||||
|
"AddWorkflowTemplate": "Hinzufügen von Workflow-Vorlage",
|
||||||
|
"Address": "Adresse",
|
||||||
"Admin": "Administrator",
|
"Admin": "Administrator",
|
||||||
"Allowed": "Erlaubt",
|
"Allowed": "Erlaubt",
|
||||||
"AnEmailWithPasswordResetLinkHasBeenSent": "Eine E-Mail mit einem Link zum Zurücksetzen des Passworts wurde gesendet.",
|
"AnEmailWithPasswordResetLinkHasBeenSent": "Eine E-Mail mit einem Link zum Zurücksetzen des Passworts wurde gesendet.",
|
||||||
@ -50,15 +52,13 @@
|
|||||||
"DisplayName": "Anzeigename",
|
"DisplayName": "Anzeigename",
|
||||||
"Domain": "Domain",
|
"Domain": "Domain",
|
||||||
"DomainEdited": "Domain bearbeitet",
|
"DomainEdited": "Domain bearbeitet",
|
||||||
"e-print": "e-print",
|
|
||||||
"e-suite": "e-suite",
|
|
||||||
"e-suiteLogo": "e-suite Logo",
|
|
||||||
"Edit": "Bearbeiten",
|
|
||||||
"EditDomain": "Domain bearbeiten",
|
|
||||||
"EditUser": "Benutzer bearbeiten",
|
|
||||||
"EFlowAppId": "e-flow AppId",
|
"EFlowAppId": "e-flow AppId",
|
||||||
"EFlowCategoryId": "e-flow CategoryId",
|
"EFlowCategoryId": "e-flow CategoryId",
|
||||||
"EFlowHostname": "e-flow Hostname",
|
"EFlowHostname": "e-flow Hostname",
|
||||||
|
"Edit": "Bearbeiten",
|
||||||
|
"EditDomain": "Domain bearbeiten",
|
||||||
|
"EditUser": "Benutzer bearbeiten",
|
||||||
|
"EditWorkflowTemplate": "Bearbeiten Sie ein Arbeitsabflussvorlage.",
|
||||||
"Email": "E-Mail",
|
"Email": "E-Mail",
|
||||||
"EmailTemplateSaved": "E-Mail-Vorlage gespeichert",
|
"EmailTemplateSaved": "E-Mail-Vorlage gespeichert",
|
||||||
"Enabled": "Aktiviert",
|
"Enabled": "Aktiviert",
|
||||||
@ -73,10 +73,10 @@
|
|||||||
"FirstName": "Vorname",
|
"FirstName": "Vorname",
|
||||||
"ForgottenPassword": "Passwort vergessen",
|
"ForgottenPassword": "Passwort vergessen",
|
||||||
"Form": "Formular",
|
"Form": "Formular",
|
||||||
"Forms": "Formulare",
|
|
||||||
"FormTemplate": "Formularvorlage",
|
"FormTemplate": "Formularvorlage",
|
||||||
"FormTemplateEdited": "Formularvorlage bearbeitet",
|
"FormTemplateEdited": "Formularvorlage bearbeitet",
|
||||||
"FormTemplateManager": "Formularvorlagen-Manager",
|
"FormTemplateManager": "Formularvorlagen-Manager",
|
||||||
|
"Forms": "Formulare",
|
||||||
"General": "Allgemein",
|
"General": "Allgemein",
|
||||||
"Glossaries": "Glossare",
|
"Glossaries": "Glossare",
|
||||||
"Glossary": "Glossar",
|
"Glossary": "Glossar",
|
||||||
@ -85,17 +85,17 @@
|
|||||||
"GlossaryManager": "Glossar-Manager",
|
"GlossaryManager": "Glossar-Manager",
|
||||||
"Group": "Gruppe",
|
"Group": "Gruppe",
|
||||||
"Home": "Startseite",
|
"Home": "Startseite",
|
||||||
"Id": "ID",
|
|
||||||
"Increment": "Schrittweite",
|
|
||||||
"IPAddress": "IP-Adresse",
|
"IPAddress": "IP-Adresse",
|
||||||
"IPAddressUnblocked": "IP-Adresse '{{ip}}' wurde entsperrt.",
|
"IPAddressUnblocked": "IP-Adresse '{{ip}}' wurde entsperrt.",
|
||||||
|
"Id": "ID",
|
||||||
|
"Increment": "Schrittweite",
|
||||||
"IsPublic": "Öffentlich",
|
"IsPublic": "Öffentlich",
|
||||||
"Items": "Einträge",
|
"Items": "Einträge",
|
||||||
"LastName": "Nachname",
|
"LastName": "Nachname",
|
||||||
"LastUpdated": "Zuletzt aktualisiert",
|
"LastUpdated": "Zuletzt aktualisiert",
|
||||||
"Loading": "Laden",
|
"Loading": "Laden",
|
||||||
"LoginMethod": "Login-Methode",
|
|
||||||
"LoggingOut": "Abmelden",
|
"LoggingOut": "Abmelden",
|
||||||
|
"LoginMethod": "Login-Methode",
|
||||||
"Logout": "Abmelden",
|
"Logout": "Abmelden",
|
||||||
"Mail": "Mail",
|
"Mail": "Mail",
|
||||||
"MailTemplates": "Mail-Vorlagen",
|
"MailTemplates": "Mail-Vorlagen",
|
||||||
@ -131,10 +131,10 @@
|
|||||||
"Password": "Passwort",
|
"Password": "Passwort",
|
||||||
"PasswordIsRequired": "Passwort ist erforderlich",
|
"PasswordIsRequired": "Passwort ist erforderlich",
|
||||||
"PasswordMinLength": "Das Passwort muss mindestens {{minPasswordLength}} Zeichen lang sein",
|
"PasswordMinLength": "Das Passwort muss mindestens {{minPasswordLength}} Zeichen lang sein",
|
||||||
"PasswordMinSymbols": "Das Passwort muss mindestens {{minSymbols}} Symbol(e) enthalten",
|
|
||||||
"PasswordMinNumbers": "Das Passwort muss mindestens {{minNumbers}} Zahl(en) enthalten",
|
|
||||||
"PasswordMinUppercase": "Das Passwort muss mindestens {{minUppercase}} Großbuchstabe(n) enthalten",
|
|
||||||
"PasswordMinLowercase": "Das Passwort muss mindestens {{minLowercase}} Kleinbuchstabe(n) enthalten",
|
"PasswordMinLowercase": "Das Passwort muss mindestens {{minLowercase}} Kleinbuchstabe(n) enthalten",
|
||||||
|
"PasswordMinNumbers": "Das Passwort muss mindestens {{minNumbers}} Zahl(en) enthalten",
|
||||||
|
"PasswordMinSymbols": "Das Passwort muss mindestens {{minSymbols}} Symbol(e) enthalten",
|
||||||
|
"PasswordMinUppercase": "Das Passwort muss mindestens {{minUppercase}} Großbuchstabe(n) enthalten",
|
||||||
"PasswordsMustMatch": "Sie müssen das neue Passwort zur Bestätigung erneut identisch eingeben",
|
"PasswordsMustMatch": "Sie müssen das neue Passwort zur Bestätigung erneut identisch eingeben",
|
||||||
"Pattern": "Muster",
|
"Pattern": "Muster",
|
||||||
"Pending": "Ausstehend",
|
"Pending": "Ausstehend",
|
||||||
@ -146,6 +146,7 @@
|
|||||||
"Required": "Erforderlich",
|
"Required": "Erforderlich",
|
||||||
"ResendConfirm": "Bestätigung erneut senden",
|
"ResendConfirm": "Bestätigung erneut senden",
|
||||||
"ResetPassword": "Passwort zurücksetzen",
|
"ResetPassword": "Passwort zurücksetzen",
|
||||||
|
"ResolveAllValidation": "Beseitigen Sie bitte alle Validierungsfehler.",
|
||||||
"Role": "Rolle",
|
"Role": "Rolle",
|
||||||
"RoleAccess": "Rollenberechtigungen",
|
"RoleAccess": "Rollenberechtigungen",
|
||||||
"RoleAccessUpdated": "Rollenberechtigungen erfolgreich aktualisiert.",
|
"RoleAccessUpdated": "Rollenberechtigungen erfolgreich aktualisiert.",
|
||||||
@ -153,6 +154,7 @@
|
|||||||
"RolloverType": "Übertragstyp",
|
"RolloverType": "Übertragstyp",
|
||||||
"Save": "Speichern",
|
"Save": "Speichern",
|
||||||
"SaveAndClose": "Speichern und schließen",
|
"SaveAndClose": "Speichern und schließen",
|
||||||
|
"SaveChangesToLinkSSOAccount": "Speichern Sie die Änderungen, um den Prozess zum Verknüpfen Ihres SSO-Kontos zu starten.",
|
||||||
"SecurityRoles": "Sicherheitsrollen",
|
"SecurityRoles": "Sicherheitsrollen",
|
||||||
"Seed": "Seed",
|
"Seed": "Seed",
|
||||||
"Sequence": "Sequenz",
|
"Sequence": "Sequenz",
|
||||||
@ -177,6 +179,7 @@
|
|||||||
"Subject": "Betreff",
|
"Subject": "Betreff",
|
||||||
"Support": "Support",
|
"Support": "Support",
|
||||||
"SupportingData": "Unterstützende Daten",
|
"SupportingData": "Unterstützende Daten",
|
||||||
|
"TasksValidationError": "Die Konfiguration der Aufgaben ist ungültig.",
|
||||||
"TemplateIdCannotBeNull": "Template-ID darf nicht null sein",
|
"TemplateIdCannotBeNull": "Template-ID darf nicht null sein",
|
||||||
"TemplateUnknown": "Unbekannte Vorlage",
|
"TemplateUnknown": "Unbekannte Vorlage",
|
||||||
"Text": "Text",
|
"Text": "Text",
|
||||||
@ -201,7 +204,11 @@
|
|||||||
"ValidIssuer": "Gültiger Aussteller",
|
"ValidIssuer": "Gültiger Aussteller",
|
||||||
"Version": "Version",
|
"Version": "Version",
|
||||||
"VersionCannotBeNull": "Version darf nicht null sein",
|
"VersionCannotBeNull": "Version darf nicht null sein",
|
||||||
|
"WorkflowTemplateName": "Name des Workflow-Vorlagen-Templates",
|
||||||
"WorkflowTemplates": "Workflow-Vorlagen",
|
"WorkflowTemplates": "Workflow-Vorlagen",
|
||||||
"Year": "Jahr",
|
"Year": "Jahr",
|
||||||
"YourProfileSettingsHaveBeenSaved": "Ihre Profileinstellungen wurden gespeichert"
|
"YourProfileSettingsHaveBeenSaved": "Ihre Profileinstellungen wurden gespeichert",
|
||||||
}
|
"e-print": "e-print",
|
||||||
|
"e-suite": "e-suite",
|
||||||
|
"e-suiteLogo": "e-suite Logo"
|
||||||
|
}
|
||||||
@ -2,7 +2,7 @@
|
|||||||
"island": {
|
"island": {
|
||||||
"loadError": "Dieser Abschnitt konnte nicht geladen werden.",
|
"loadError": "Dieser Abschnitt konnte nicht geladen werden.",
|
||||||
"networkError": "Netzwerkfehler beim Speichern.",
|
"networkError": "Netzwerkfehler beim Speichern.",
|
||||||
"serverError": "Serverfehler beim Speichern.",
|
"saveSuccess": "Erfolgreich gespeichert.",
|
||||||
"saveSuccess": "Erfolgreich gespeichert."
|
"serverError": "Serverfehler beim Speichern."
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -3,4 +3,4 @@
|
|||||||
"DisableAuthenticator": "Zwei-Faktor-Authentifizierung deaktivieren",
|
"DisableAuthenticator": "Zwei-Faktor-Authentifizierung deaktivieren",
|
||||||
"PasswordReset": "Passwort zurücksetzen",
|
"PasswordReset": "Passwort zurücksetzen",
|
||||||
"PasswordResetCompleted": "Bestätigung der Passwortzurücksetzung"
|
"PasswordResetCompleted": "Bestätigung der Passwortzurücksetzung"
|
||||||
}
|
}
|
||||||
6
public/locales/de/raci.json
Normal file
6
public/locales/de/raci.json
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
{
|
||||||
|
"Accountable": "Verantwortlich",
|
||||||
|
"Consulted": "Beraten worden.",
|
||||||
|
"Informed": "Beflügelt durch Informationen",
|
||||||
|
"Responsible": "Verantwortungsbewusst"
|
||||||
|
}
|
||||||
14
public/locales/de/taskTypes.json
Normal file
14
public/locales/de/taskTypes.json
Normal file
@ -0,0 +1,14 @@
|
|||||||
|
{
|
||||||
|
"AdhocApprovalTask": "Ad hoc Genehmigung",
|
||||||
|
"ApprovalTask": "Genehmigung",
|
||||||
|
"AssetUploadTask": "Laden von Vermögenswerten",
|
||||||
|
"BasicTask": "Grundlagen",
|
||||||
|
"ContentCollationTask": "Inhaltsauswahl",
|
||||||
|
"FileReleaseTask": "Veröffentlichung von Dateien",
|
||||||
|
"FormDataInputTask": "Eingabe von Formulardaten",
|
||||||
|
"LinkActivityTask": "Link Activity",
|
||||||
|
"MilestoneTask": "Meilenstein",
|
||||||
|
"StageTask": "Bühne",
|
||||||
|
"VisualBriefReviewTask": "Visualer Überblick",
|
||||||
|
"VisualBriefUploadTask": "Hochladen des visuellen Überblicks"
|
||||||
|
}
|
||||||
@ -1,15 +1,14 @@
|
|||||||
{
|
{
|
||||||
"ActivityNameTemplate": "Activity Name Template",
|
|
||||||
"SaveChangesToLinkSSOAccount": "Save changes to trigger the process that will link your SSO Account.",
|
|
||||||
"Account": "Account",
|
"Account": "Account",
|
||||||
"Activate": "Activate",
|
"Activate": "Activate",
|
||||||
"Active": "Active",
|
"Active": "Active",
|
||||||
|
"ActivityNameTemplate": "Activity Name Template",
|
||||||
"Add": "Add",
|
"Add": "Add",
|
||||||
"AddDomain": "Add Domain",
|
"AddDomain": "Add Domain",
|
||||||
"AddTask": "Add Task",
|
"AddTask": "Add Task",
|
||||||
"Address": "Address",
|
|
||||||
"AddUser": "Add User",
|
"AddUser": "Add User",
|
||||||
"AddWorkflowTemplate": "Add Workflow Template",
|
"AddWorkflowTemplate": "Add Workflow Template",
|
||||||
|
"Address": "Address",
|
||||||
"Admin": "Admin",
|
"Admin": "Admin",
|
||||||
"Allowed": "Allowed",
|
"Allowed": "Allowed",
|
||||||
"AnEmailWithPasswordResetLinkHasBeenSent": "An email with a password reset link has been sent.",
|
"AnEmailWithPasswordResetLinkHasBeenSent": "An email with a password reset link has been sent.",
|
||||||
@ -53,15 +52,12 @@
|
|||||||
"DisplayName": "Display Name",
|
"DisplayName": "Display Name",
|
||||||
"Domain": "Domain",
|
"Domain": "Domain",
|
||||||
"DomainEdited": "Domain edited",
|
"DomainEdited": "Domain edited",
|
||||||
"e-print": "e-print",
|
|
||||||
"e-suite": "e-suite",
|
|
||||||
"e-suiteLogo": "e-suite logo",
|
|
||||||
"Edit": "Edit",
|
|
||||||
"EditDomain": "Edit Domain",
|
|
||||||
"EditWorkflowTemplate": "Edit Workflow Template",
|
|
||||||
"EFlowAppId": "e-flow AppId",
|
"EFlowAppId": "e-flow AppId",
|
||||||
"EFlowCategoryId": "e-flow CategoryId",
|
"EFlowCategoryId": "e-flow CategoryId",
|
||||||
"EFlowHostname": "e-flow hostname",
|
"EFlowHostname": "e-flow hostname",
|
||||||
|
"Edit": "Edit",
|
||||||
|
"EditDomain": "Edit Domain",
|
||||||
|
"EditWorkflowTemplate": "Edit Workflow Template",
|
||||||
"Email": "Email",
|
"Email": "Email",
|
||||||
"EmailTemplateSaved": "Email Template saved",
|
"EmailTemplateSaved": "Email Template saved",
|
||||||
"Enabled": "Enabled",
|
"Enabled": "Enabled",
|
||||||
@ -76,10 +72,10 @@
|
|||||||
"FirstName": "First name",
|
"FirstName": "First name",
|
||||||
"ForgottenPassword": "Forgotten Password",
|
"ForgottenPassword": "Forgotten Password",
|
||||||
"Form": "Form",
|
"Form": "Form",
|
||||||
"Forms": "Forms",
|
|
||||||
"FormTemplate": "Form Template",
|
"FormTemplate": "Form Template",
|
||||||
"FormTemplateEdited": "Form template edited",
|
"FormTemplateEdited": "Form template edited",
|
||||||
"FormTemplateManager": "Form Template Manager",
|
"FormTemplateManager": "Form Template Manager",
|
||||||
|
"Forms": "Forms",
|
||||||
"General": "General",
|
"General": "General",
|
||||||
"Glossaries": "Glossaries",
|
"Glossaries": "Glossaries",
|
||||||
"Glossary": "Glossary",
|
"Glossary": "Glossary",
|
||||||
@ -88,17 +84,17 @@
|
|||||||
"GlossaryManager": "Glossary Manager",
|
"GlossaryManager": "Glossary Manager",
|
||||||
"Group": "Group",
|
"Group": "Group",
|
||||||
"Home": "Home",
|
"Home": "Home",
|
||||||
"Id": "Id",
|
|
||||||
"Increment": "Increment",
|
|
||||||
"IPAddress": "IP Address",
|
"IPAddress": "IP Address",
|
||||||
"IPAddressUnblocked": "IP Address '{{ip}}' unblocked.",
|
"IPAddressUnblocked": "IP Address '{{ip}}' unblocked.",
|
||||||
|
"Id": "Id",
|
||||||
|
"Increment": "Increment",
|
||||||
"IsPublic": "Is Public",
|
"IsPublic": "Is Public",
|
||||||
"Items": "Items",
|
"Items": "Items",
|
||||||
"LastName": "Last name",
|
"LastName": "Last name",
|
||||||
"LastUpdated": "Last Updated",
|
"LastUpdated": "Last Updated",
|
||||||
"Loading": "Loading",
|
"Loading": "Loading",
|
||||||
"LoginMethod": "Login Method",
|
|
||||||
"LoggingOut": "Logging out",
|
"LoggingOut": "Logging out",
|
||||||
|
"LoginMethod": "Login Method",
|
||||||
"Logout": "Logout",
|
"Logout": "Logout",
|
||||||
"Mail": "Mail",
|
"Mail": "Mail",
|
||||||
"MailTemplates": "Mail Templates",
|
"MailTemplates": "Mail Templates",
|
||||||
@ -134,10 +130,10 @@
|
|||||||
"Password": "Password",
|
"Password": "Password",
|
||||||
"PasswordIsRequired": "Password is required",
|
"PasswordIsRequired": "Password is required",
|
||||||
"PasswordMinLength": "Password must be at least {{minPasswordLength}} characters",
|
"PasswordMinLength": "Password must be at least {{minPasswordLength}} characters",
|
||||||
"PasswordMinSymbols": "Password must contain at least {{minSymbols}} symbol(s)",
|
|
||||||
"PasswordMinNumbers": "Password must contain at least {{minNumbers}} number(s)",
|
|
||||||
"PasswordMinUppercase": "Password must contain at least {{minUppercase}} uppercase letter(s)",
|
|
||||||
"PasswordMinLowercase": "Password must contain at least {{minLowercase}} lowercase letter(s)",
|
"PasswordMinLowercase": "Password must contain at least {{minLowercase}} lowercase letter(s)",
|
||||||
|
"PasswordMinNumbers": "Password must contain at least {{minNumbers}} number(s)",
|
||||||
|
"PasswordMinSymbols": "Password must contain at least {{minSymbols}} symbol(s)",
|
||||||
|
"PasswordMinUppercase": "Password must contain at least {{minUppercase}} uppercase letter(s)",
|
||||||
"PasswordsMustMatch": "You need to confirm by typing exactly the same as the new password",
|
"PasswordsMustMatch": "You need to confirm by typing exactly the same as the new password",
|
||||||
"Pattern": "Pattern",
|
"Pattern": "Pattern",
|
||||||
"Pending": "Pending",
|
"Pending": "Pending",
|
||||||
@ -157,6 +153,7 @@
|
|||||||
"RolloverType": "Rollover Type",
|
"RolloverType": "Rollover Type",
|
||||||
"Save": "Save",
|
"Save": "Save",
|
||||||
"SaveAndClose": "Save and close",
|
"SaveAndClose": "Save and close",
|
||||||
|
"SaveChangesToLinkSSOAccount": "Save changes to trigger the process that will link your SSO Account.",
|
||||||
"SecurityRoles": "Security Roles",
|
"SecurityRoles": "Security Roles",
|
||||||
"Seed": "Seed",
|
"Seed": "Seed",
|
||||||
"Sequence": "Sequence",
|
"Sequence": "Sequence",
|
||||||
@ -209,5 +206,8 @@
|
|||||||
"WorkflowTemplateName": "Workflow Template Name",
|
"WorkflowTemplateName": "Workflow Template Name",
|
||||||
"WorkflowTemplates": "Workflow Templates",
|
"WorkflowTemplates": "Workflow Templates",
|
||||||
"Year": "Year",
|
"Year": "Year",
|
||||||
"YourProfileSettingsHaveBeenSaved": "Your profile settings have been saved"
|
"YourProfileSettingsHaveBeenSaved": "Your profile settings have been saved",
|
||||||
}
|
"e-print": "e-print",
|
||||||
|
"e-suite": "e-suite",
|
||||||
|
"e-suiteLogo": "e-suite logo"
|
||||||
|
}
|
||||||
@ -2,7 +2,7 @@
|
|||||||
"island": {
|
"island": {
|
||||||
"loadError": "Failed to load this section.",
|
"loadError": "Failed to load this section.",
|
||||||
"networkError": "Network error while saving.",
|
"networkError": "Network error while saving.",
|
||||||
"serverError": "Server error while saving.",
|
"saveSuccess": "Saved successfully.",
|
||||||
"saveSuccess": "Saved successfully."
|
"serverError": "Server error while saving."
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -3,4 +3,4 @@
|
|||||||
"DisableAuthenticator": "Disable Two Factor Authentication",
|
"DisableAuthenticator": "Disable Two Factor Authentication",
|
||||||
"PasswordReset": "Password Reset",
|
"PasswordReset": "Password Reset",
|
||||||
"PasswordResetCompleted": "Confirmation password reset"
|
"PasswordResetCompleted": "Confirmation password reset"
|
||||||
}
|
}
|
||||||
@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"Responsible": "Responsible",
|
|
||||||
"Accountable": "Accountable",
|
"Accountable": "Accountable",
|
||||||
"Consulted": "Consulted",
|
"Consulted": "Consulted",
|
||||||
"Informed": "Informed"
|
"Informed": "Informed",
|
||||||
}
|
"Responsible": "Responsible"
|
||||||
|
}
|
||||||
@ -11,4 +11,4 @@
|
|||||||
"StageTask": "Stage",
|
"StageTask": "Stage",
|
||||||
"VisualBriefReviewTask": "Visual Brief Review",
|
"VisualBriefReviewTask": "Visual Brief Review",
|
||||||
"VisualBriefUploadTask": "Visual Brief Upload"
|
"VisualBriefUploadTask": "Visual Brief Upload"
|
||||||
}
|
}
|
||||||
@ -1,12 +1,14 @@
|
|||||||
{
|
{
|
||||||
"SaveChangesToLinkSSOAccount": "Guarda los cambios para iniciar el proceso que vinculará tu cuenta SSO.",
|
|
||||||
"Account": "Cuenta",
|
"Account": "Cuenta",
|
||||||
"Activate": "Activar",
|
"Activate": "Activar",
|
||||||
"Active": "Activo",
|
"Active": "Activo",
|
||||||
|
"ActivityNameTemplate": "Plantilla de Nombre de Actividad",
|
||||||
"Add": "Añadir",
|
"Add": "Añadir",
|
||||||
"AddDomain": "Añadir dominio",
|
"AddDomain": "Añadir dominio",
|
||||||
"Address": "Dirección",
|
"AddTask": "Añadir tarea",
|
||||||
"AddUser": "Añadir usuario",
|
"AddUser": "Añadir usuario",
|
||||||
|
"AddWorkflowTemplate": "Añadir Plantilla de Flujo de Trabajo",
|
||||||
|
"Address": "Dirección",
|
||||||
"Admin": "Administrador",
|
"Admin": "Administrador",
|
||||||
"Allowed": "Permitido",
|
"Allowed": "Permitido",
|
||||||
"AnEmailWithPasswordResetLinkHasBeenSent": "Se ha enviado un correo electrónico con un enlace para restablecer la contraseña.",
|
"AnEmailWithPasswordResetLinkHasBeenSent": "Se ha enviado un correo electrónico con un enlace para restablecer la contraseña.",
|
||||||
@ -50,15 +52,13 @@
|
|||||||
"DisplayName": "Nombre visible",
|
"DisplayName": "Nombre visible",
|
||||||
"Domain": "Dominio",
|
"Domain": "Dominio",
|
||||||
"DomainEdited": "Dominio editado",
|
"DomainEdited": "Dominio editado",
|
||||||
"e-print": "e-print",
|
|
||||||
"e-suite": "e-suite",
|
|
||||||
"e-suiteLogo": "Logo de e-suite",
|
|
||||||
"Edit": "Editar",
|
|
||||||
"EditDomain": "Editar dominio",
|
|
||||||
"EditUser": "Editar usuario",
|
|
||||||
"EFlowAppId": "e-flow AppId",
|
"EFlowAppId": "e-flow AppId",
|
||||||
"EFlowCategoryId": "e-flow CategoryId",
|
"EFlowCategoryId": "e-flow CategoryId",
|
||||||
"EFlowHostname": "Nombre de host de e-flow",
|
"EFlowHostname": "Nombre de host de e-flow",
|
||||||
|
"Edit": "Editar",
|
||||||
|
"EditDomain": "Editar dominio",
|
||||||
|
"EditUser": "Editar usuario",
|
||||||
|
"EditWorkflowTemplate": "Editar Plantilla de Flujo de Trabajo",
|
||||||
"Email": "Correo electrónico",
|
"Email": "Correo electrónico",
|
||||||
"EmailTemplateSaved": "Plantilla de correo guardada",
|
"EmailTemplateSaved": "Plantilla de correo guardada",
|
||||||
"Enabled": "Habilitado",
|
"Enabled": "Habilitado",
|
||||||
@ -73,10 +73,10 @@
|
|||||||
"FirstName": "Nombre",
|
"FirstName": "Nombre",
|
||||||
"ForgottenPassword": "Contraseña olvidada",
|
"ForgottenPassword": "Contraseña olvidada",
|
||||||
"Form": "Formulario",
|
"Form": "Formulario",
|
||||||
"Forms": "Formularios",
|
|
||||||
"FormTemplate": "Plantilla de formulario",
|
"FormTemplate": "Plantilla de formulario",
|
||||||
"FormTemplateEdited": "Plantilla de formulario editada",
|
"FormTemplateEdited": "Plantilla de formulario editada",
|
||||||
"FormTemplateManager": "Gestor de plantillas de formulario",
|
"FormTemplateManager": "Gestor de plantillas de formulario",
|
||||||
|
"Forms": "Formularios",
|
||||||
"General": "General",
|
"General": "General",
|
||||||
"Glossaries": "Glosarios",
|
"Glossaries": "Glosarios",
|
||||||
"Glossary": "Glosario",
|
"Glossary": "Glosario",
|
||||||
@ -85,17 +85,17 @@
|
|||||||
"GlossaryManager": "Gestor de glosarios",
|
"GlossaryManager": "Gestor de glosarios",
|
||||||
"Group": "Grupo",
|
"Group": "Grupo",
|
||||||
"Home": "Inicio",
|
"Home": "Inicio",
|
||||||
"Id": "Id",
|
|
||||||
"Increment": "Incremento",
|
|
||||||
"IPAddress": "Dirección IP",
|
"IPAddress": "Dirección IP",
|
||||||
"IPAddressUnblocked": "Dirección IP '{{ip}}' desbloqueada.",
|
"IPAddressUnblocked": "Dirección IP '{{ip}}' desbloqueada.",
|
||||||
|
"Id": "Id",
|
||||||
|
"Increment": "Incremento",
|
||||||
"IsPublic": "Es público",
|
"IsPublic": "Es público",
|
||||||
"Items": "Elementos",
|
"Items": "Elementos",
|
||||||
"LastName": "Apellidos",
|
"LastName": "Apellidos",
|
||||||
"LastUpdated": "Última actualización",
|
"LastUpdated": "Última actualización",
|
||||||
"Loading": "Cargando",
|
"Loading": "Cargando",
|
||||||
"LoginMethod": "Método de inicio de sesión",
|
|
||||||
"LoggingOut": "Cerrando sesión",
|
"LoggingOut": "Cerrando sesión",
|
||||||
|
"LoginMethod": "Método de inicio de sesión",
|
||||||
"Logout": "Cerrar sesión",
|
"Logout": "Cerrar sesión",
|
||||||
"Mail": "Correo",
|
"Mail": "Correo",
|
||||||
"MailTemplates": "Plantillas de correo",
|
"MailTemplates": "Plantillas de correo",
|
||||||
@ -131,10 +131,10 @@
|
|||||||
"Password": "Contraseña",
|
"Password": "Contraseña",
|
||||||
"PasswordIsRequired": "La contraseña es obligatoria",
|
"PasswordIsRequired": "La contraseña es obligatoria",
|
||||||
"PasswordMinLength": "La contraseña debe tener al menos {{minPasswordLength}} caracteres",
|
"PasswordMinLength": "La contraseña debe tener al menos {{minPasswordLength}} caracteres",
|
||||||
"PasswordMinSymbols": "La contraseña debe contener al menos {{minSymbols}} símbolo(s)",
|
|
||||||
"PasswordMinNumbers": "La contraseña debe contener al menos {{minNumbers}} número(s)",
|
|
||||||
"PasswordMinUppercase": "La contraseña debe contener al menos {{minUppercase}} letra(s) mayúscula(s)",
|
|
||||||
"PasswordMinLowercase": "La contraseña debe contener al menos {{minLowercase}} letra(s) minúscula(s)",
|
"PasswordMinLowercase": "La contraseña debe contener al menos {{minLowercase}} letra(s) minúscula(s)",
|
||||||
|
"PasswordMinNumbers": "La contraseña debe contener al menos {{minNumbers}} número(s)",
|
||||||
|
"PasswordMinSymbols": "La contraseña debe contener al menos {{minSymbols}} símbolo(s)",
|
||||||
|
"PasswordMinUppercase": "La contraseña debe contener al menos {{minUppercase}} letra(s) mayúscula(s)",
|
||||||
"PasswordsMustMatch": "Debes confirmar escribiendo exactamente la misma contraseña nueva",
|
"PasswordsMustMatch": "Debes confirmar escribiendo exactamente la misma contraseña nueva",
|
||||||
"Pattern": "Patrón",
|
"Pattern": "Patrón",
|
||||||
"Pending": "Pendiente",
|
"Pending": "Pendiente",
|
||||||
@ -146,6 +146,7 @@
|
|||||||
"Required": "Obligatorio",
|
"Required": "Obligatorio",
|
||||||
"ResendConfirm": "Reenviar confirmación",
|
"ResendConfirm": "Reenviar confirmación",
|
||||||
"ResetPassword": "Restablecer contraseña",
|
"ResetPassword": "Restablecer contraseña",
|
||||||
|
"ResolveAllValidation": "Resuelva todos los errores de validación.",
|
||||||
"Role": "Rol",
|
"Role": "Rol",
|
||||||
"RoleAccess": "Acceso del rol",
|
"RoleAccess": "Acceso del rol",
|
||||||
"RoleAccessUpdated": "Acceso del rol actualizado correctamente.",
|
"RoleAccessUpdated": "Acceso del rol actualizado correctamente.",
|
||||||
@ -153,6 +154,7 @@
|
|||||||
"RolloverType": "Tipo de traspaso",
|
"RolloverType": "Tipo de traspaso",
|
||||||
"Save": "Guardar",
|
"Save": "Guardar",
|
||||||
"SaveAndClose": "Guardar y cerrar",
|
"SaveAndClose": "Guardar y cerrar",
|
||||||
|
"SaveChangesToLinkSSOAccount": "Guarda los cambios para iniciar el proceso que vinculará tu cuenta SSO.",
|
||||||
"SecurityRoles": "Roles de seguridad",
|
"SecurityRoles": "Roles de seguridad",
|
||||||
"Seed": "Semilla",
|
"Seed": "Semilla",
|
||||||
"Sequence": "Secuencia",
|
"Sequence": "Secuencia",
|
||||||
@ -177,6 +179,7 @@
|
|||||||
"Subject": "Asunto",
|
"Subject": "Asunto",
|
||||||
"Support": "Soporte",
|
"Support": "Soporte",
|
||||||
"SupportingData": "Datos de soporte",
|
"SupportingData": "Datos de soporte",
|
||||||
|
"TasksValidationError": "La configuración de las tareas es inválida.",
|
||||||
"TemplateIdCannotBeNull": "El ID de plantilla no puede ser nulo",
|
"TemplateIdCannotBeNull": "El ID de plantilla no puede ser nulo",
|
||||||
"TemplateUnknown": "Plantilla desconocida",
|
"TemplateUnknown": "Plantilla desconocida",
|
||||||
"Text": "Texto",
|
"Text": "Texto",
|
||||||
@ -201,6 +204,11 @@
|
|||||||
"ValidIssuer": "Emisor válido",
|
"ValidIssuer": "Emisor válido",
|
||||||
"Version": "Versión",
|
"Version": "Versión",
|
||||||
"VersionCannotBeNull": "La versión no puede ser nula",
|
"VersionCannotBeNull": "La versión no puede ser nula",
|
||||||
|
"WorkflowTemplateName": "Nombre del Plantilla de Flujo de Trabajo",
|
||||||
|
"WorkflowTemplates": "Plantillas de flujos de trabajo",
|
||||||
"Year": "Año",
|
"Year": "Año",
|
||||||
"YourProfileSettingsHaveBeenSaved": "La configuración de tu perfil ha sido guardada"
|
"YourProfileSettingsHaveBeenSaved": "La configuración de tu perfil ha sido guardada",
|
||||||
}
|
"e-print": "e-print",
|
||||||
|
"e-suite": "e-suite",
|
||||||
|
"e-suiteLogo": "Logo de e-suite"
|
||||||
|
}
|
||||||
@ -2,7 +2,7 @@
|
|||||||
"island": {
|
"island": {
|
||||||
"loadError": "No se pudo cargar esta sección.",
|
"loadError": "No se pudo cargar esta sección.",
|
||||||
"networkError": "Error de red al guardar.",
|
"networkError": "Error de red al guardar.",
|
||||||
"serverError": "Error del servidor al guardar.",
|
"saveSuccess": "Guardado correctamente.",
|
||||||
"saveSuccess": "Guardado correctamente."
|
"serverError": "Error del servidor al guardar."
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -3,4 +3,4 @@
|
|||||||
"DisableAuthenticator": "Desactivar la autenticación en dos pasos",
|
"DisableAuthenticator": "Desactivar la autenticación en dos pasos",
|
||||||
"PasswordReset": "Restablecer contraseña",
|
"PasswordReset": "Restablecer contraseña",
|
||||||
"PasswordResetCompleted": "Confirmación de restablecimiento de contraseña"
|
"PasswordResetCompleted": "Confirmación de restablecimiento de contraseña"
|
||||||
}
|
}
|
||||||
6
public/locales/es/raci.json
Normal file
6
public/locales/es/raci.json
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
{
|
||||||
|
"Accountable": "Responsable",
|
||||||
|
"Consulted": "Consultado",
|
||||||
|
"Informed": "Informado",
|
||||||
|
"Responsible": "Responsable"
|
||||||
|
}
|
||||||
14
public/locales/es/taskTypes.json
Normal file
14
public/locales/es/taskTypes.json
Normal file
@ -0,0 +1,14 @@
|
|||||||
|
{
|
||||||
|
"AdhocApprovalTask": "Aprobación Ad Hoc",
|
||||||
|
"ApprovalTask": "Aprobación",
|
||||||
|
"AssetUploadTask": "Carga de Activos",
|
||||||
|
"BasicTask": "Básico",
|
||||||
|
"ContentCollationTask": "Colección de contenido",
|
||||||
|
"FileReleaseTask": "Publicación del archivo",
|
||||||
|
"FormDataInputTask": "Introducción de datos en formularios",
|
||||||
|
"LinkActivityTask": "Actividad de Enlace",
|
||||||
|
"MilestoneTask": "Hito de camino",
|
||||||
|
"StageTask": "Escenario",
|
||||||
|
"VisualBriefReviewTask": "Revisión breve y visual",
|
||||||
|
"VisualBriefUploadTask": "Carga de resumen visual"
|
||||||
|
}
|
||||||
@ -2,10 +2,13 @@
|
|||||||
"Account": "Compte",
|
"Account": "Compte",
|
||||||
"Activate": "Activer",
|
"Activate": "Activer",
|
||||||
"Active": "Actif",
|
"Active": "Actif",
|
||||||
|
"ActivityNameTemplate": "Modèle de nom d'activité",
|
||||||
"Add": "Ajouter",
|
"Add": "Ajouter",
|
||||||
"AddDomain": "Ajouter un domaine",
|
"AddDomain": "Ajouter un domaine",
|
||||||
"Address": "Adresse",
|
"AddTask": "Ajouter une tâche",
|
||||||
"AddUser": "Ajouter un utilisateur",
|
"AddUser": "Ajouter un utilisateur",
|
||||||
|
"AddWorkflowTemplate": "Ajouter un modèle de flux de travail",
|
||||||
|
"Address": "Adresse",
|
||||||
"Admin": "Administrateur",
|
"Admin": "Administrateur",
|
||||||
"Allowed": "Autorisé",
|
"Allowed": "Autorisé",
|
||||||
"AnEmailWithPasswordResetLinkHasBeenSent": "Un e-mail contenant un lien de réinitialisation du mot de passe a été envoyé.",
|
"AnEmailWithPasswordResetLinkHasBeenSent": "Un e-mail contenant un lien de réinitialisation du mot de passe a été envoyé.",
|
||||||
@ -49,15 +52,13 @@
|
|||||||
"DisplayName": "Nom d’affichage",
|
"DisplayName": "Nom d’affichage",
|
||||||
"Domain": "Domaine",
|
"Domain": "Domaine",
|
||||||
"DomainEdited": "Domaine modifié",
|
"DomainEdited": "Domaine modifié",
|
||||||
"e-print": "e-print",
|
|
||||||
"e-suite": "e-suite",
|
|
||||||
"e-suiteLogo": "Logo e-suite",
|
|
||||||
"Edit": "Modifier",
|
|
||||||
"EditDomain": "Modifier le domaine",
|
|
||||||
"EditUser": "Modifier l’utilisateur",
|
|
||||||
"EFlowAppId": "e-flow AppId",
|
"EFlowAppId": "e-flow AppId",
|
||||||
"EFlowCategoryId": "e-flow CategoryId",
|
"EFlowCategoryId": "e-flow CategoryId",
|
||||||
"EFlowHostname": "Nom d’hôte e-flow",
|
"EFlowHostname": "Nom d’hôte e-flow",
|
||||||
|
"Edit": "Modifier",
|
||||||
|
"EditDomain": "Modifier le domaine",
|
||||||
|
"EditUser": "Modifier l’utilisateur",
|
||||||
|
"EditWorkflowTemplate": "Modifier le modèle de flux de travail",
|
||||||
"Email": "E-mail",
|
"Email": "E-mail",
|
||||||
"EmailTemplateSaved": "Modèle d’e-mail enregistré",
|
"EmailTemplateSaved": "Modèle d’e-mail enregistré",
|
||||||
"Enabled": "Activé",
|
"Enabled": "Activé",
|
||||||
@ -72,10 +73,10 @@
|
|||||||
"FirstName": "Prénom",
|
"FirstName": "Prénom",
|
||||||
"ForgottenPassword": "Mot de passe oublié",
|
"ForgottenPassword": "Mot de passe oublié",
|
||||||
"Form": "Formulaire",
|
"Form": "Formulaire",
|
||||||
"Forms": "Formulaires",
|
|
||||||
"FormTemplate": "Modèle de formulaire",
|
"FormTemplate": "Modèle de formulaire",
|
||||||
"FormTemplateEdited": "Modèle de formulaire modifié",
|
"FormTemplateEdited": "Modèle de formulaire modifié",
|
||||||
"FormTemplateManager": "Gestionnaire de modèles de formulaire",
|
"FormTemplateManager": "Gestionnaire de modèles de formulaire",
|
||||||
|
"Forms": "Formulaires",
|
||||||
"General": "Général",
|
"General": "Général",
|
||||||
"Glossaries": "Glossaires",
|
"Glossaries": "Glossaires",
|
||||||
"Glossary": "Glossaire",
|
"Glossary": "Glossaire",
|
||||||
@ -84,16 +85,17 @@
|
|||||||
"GlossaryManager": "Gestionnaire de glossaire",
|
"GlossaryManager": "Gestionnaire de glossaire",
|
||||||
"Group": "Groupe",
|
"Group": "Groupe",
|
||||||
"Home": "Accueil",
|
"Home": "Accueil",
|
||||||
"Id": "Id",
|
|
||||||
"Increment": "Incrément",
|
|
||||||
"IPAddress": "Adresse IP",
|
"IPAddress": "Adresse IP",
|
||||||
"IPAddressUnblocked": "Adresse IP '{{ip}}' débloquée.",
|
"IPAddressUnblocked": "Adresse IP '{{ip}}' débloquée.",
|
||||||
|
"Id": "Id",
|
||||||
|
"Increment": "Incrément",
|
||||||
"IsPublic": "Public",
|
"IsPublic": "Public",
|
||||||
"Items": "Éléments",
|
"Items": "Éléments",
|
||||||
"LastName": "Nom de famille",
|
"LastName": "Nom de famille",
|
||||||
"LastUpdated": "Dernière mise à jour",
|
"LastUpdated": "Dernière mise à jour",
|
||||||
"Loading": "Chargement",
|
"Loading": "Chargement",
|
||||||
"LoggingOut": "Déconnexion",
|
"LoggingOut": "Déconnexion",
|
||||||
|
"LoginMethod": "Méthode de connexion",
|
||||||
"Logout": "Se déconnecter",
|
"Logout": "Se déconnecter",
|
||||||
"Mail": "Courrier",
|
"Mail": "Courrier",
|
||||||
"MailTemplates": "Modèles d’e-mail",
|
"MailTemplates": "Modèles d’e-mail",
|
||||||
@ -129,6 +131,10 @@
|
|||||||
"Password": "Mot de passe",
|
"Password": "Mot de passe",
|
||||||
"PasswordIsRequired": "Le mot de passe est requis",
|
"PasswordIsRequired": "Le mot de passe est requis",
|
||||||
"PasswordMinLength": "Le mot de passe doit contenir au moins {{minPasswordLength}} caractères",
|
"PasswordMinLength": "Le mot de passe doit contenir au moins {{minPasswordLength}} caractères",
|
||||||
|
"PasswordMinLowercase": "Le mot de passe doit contenir au moins {{minLowercase}} lettres minuscules.",
|
||||||
|
"PasswordMinNumbers": "Le mot de passe doit contenir au moins {{minNumbers}} chiffres.",
|
||||||
|
"PasswordMinSymbols": "Le mot de passe doit contenir au moins {{minSymbols}} symboles.",
|
||||||
|
"PasswordMinUppercase": "Le mot de passe doit contenir au moins {{minUppercase}} lettres majuscules.",
|
||||||
"PasswordsMustMatch": "Vous devez confirmer en saisissant exactement le même nouveau mot de passe",
|
"PasswordsMustMatch": "Vous devez confirmer en saisissant exactement le même nouveau mot de passe",
|
||||||
"Pattern": "Motif",
|
"Pattern": "Motif",
|
||||||
"Pending": "En attente",
|
"Pending": "En attente",
|
||||||
@ -137,16 +143,18 @@
|
|||||||
"PrintSpecification": "Imprimer la spécification",
|
"PrintSpecification": "Imprimer la spécification",
|
||||||
"Profile": "Profil",
|
"Profile": "Profil",
|
||||||
"ProfileSaved": "Profil mis à jour.",
|
"ProfileSaved": "Profil mis à jour.",
|
||||||
"ResendConfirm": "Renvoyer la confirmation",
|
|
||||||
"Required": "Requis",
|
"Required": "Requis",
|
||||||
|
"ResendConfirm": "Renvoyer la confirmation",
|
||||||
"ResetPassword": "Réinitialiser le mot de passe",
|
"ResetPassword": "Réinitialiser le mot de passe",
|
||||||
"RolloverType": "Type de report",
|
"ResolveAllValidation": "Résolvez tous les erreurs de validation.",
|
||||||
"Role": "Rôle",
|
"Role": "Rôle",
|
||||||
"RoleAccess": "Accès par rôle",
|
"RoleAccess": "Accès par rôle",
|
||||||
"RoleAccessUpdated": "Accès par rôle mis à jour avec succès.",
|
"RoleAccessUpdated": "Accès par rôle mis à jour avec succès.",
|
||||||
"RoleEdited": "Rôle modifié",
|
"RoleEdited": "Rôle modifié",
|
||||||
|
"RolloverType": "Type de report",
|
||||||
"Save": "Enregistrer",
|
"Save": "Enregistrer",
|
||||||
"SaveAndClose": "Enregistrer et fermer",
|
"SaveAndClose": "Enregistrer et fermer",
|
||||||
|
"SaveChangesToLinkSSOAccount": "Sauver les modifications permettra de déclencher le processus qui liera votre compte SSO.",
|
||||||
"SecurityRoles": "Rôles de sécurité",
|
"SecurityRoles": "Rôles de sécurité",
|
||||||
"Seed": "Graine",
|
"Seed": "Graine",
|
||||||
"Sequence": "Séquence",
|
"Sequence": "Séquence",
|
||||||
@ -171,6 +179,7 @@
|
|||||||
"Subject": "Sujet",
|
"Subject": "Sujet",
|
||||||
"Support": "Support",
|
"Support": "Support",
|
||||||
"SupportingData": "Données de support",
|
"SupportingData": "Données de support",
|
||||||
|
"TasksValidationError": "La configuration des tâches est invalide.",
|
||||||
"TemplateIdCannotBeNull": "L’ID du modèle ne peut pas être nul",
|
"TemplateIdCannotBeNull": "L’ID du modèle ne peut pas être nul",
|
||||||
"TemplateUnknown": "Modèle inconnu",
|
"TemplateUnknown": "Modèle inconnu",
|
||||||
"Text": "Texte",
|
"Text": "Texte",
|
||||||
@ -185,15 +194,21 @@
|
|||||||
"Up": "Haut",
|
"Up": "Haut",
|
||||||
"User": "Utilisateur",
|
"User": "Utilisateur",
|
||||||
"UserAddedToRole": "Utilisateur ajouté au rôle",
|
"UserAddedToRole": "Utilisateur ajouté au rôle",
|
||||||
|
"UserEdited": "Utilisateur modifié",
|
||||||
"UserManager": "Gestionnaire d’utilisateurs",
|
"UserManager": "Gestionnaire d’utilisateurs",
|
||||||
"UserName": "Nom d’utilisateur",
|
"UserName": "Nom d’utilisateur",
|
||||||
"UsernameIsRequired": "Le nom d’utilisateur est requis",
|
"UsernameIsRequired": "Le nom d’utilisateur est requis",
|
||||||
"UsernameMustBeValidEmail": "Le nom d’utilisateur doit être une adresse e-mail valide",
|
"UsernameMustBeValidEmail": "Le nom d’utilisateur doit être une adresse e-mail valide",
|
||||||
"Users": "Utilisateurs",
|
"Users": "Utilisateurs",
|
||||||
"UserEdited": "Utilisateur modifié",
|
"UsingTwoFactorAuthentication": "Utiliser l’authentification à deux facteurs",
|
||||||
"ValidIssuer": "Émetteur valide",
|
"ValidIssuer": "Émetteur valide",
|
||||||
"Version": "Version",
|
"Version": "Version",
|
||||||
"VersionCannotBeNull": "La version ne peut pas être nulle",
|
"VersionCannotBeNull": "La version ne peut pas être nulle",
|
||||||
|
"WorkflowTemplateName": "Nom du modèle de flux de travail",
|
||||||
|
"WorkflowTemplates": "Modèles de processus de travail",
|
||||||
"Year": "Année",
|
"Year": "Année",
|
||||||
"YourProfileSettingsHaveBeenSaved": "Vos paramètres de profil ont été enregistrés"
|
"YourProfileSettingsHaveBeenSaved": "Vos paramètres de profil ont été enregistrés",
|
||||||
}
|
"e-print": "e-print",
|
||||||
|
"e-suite": "e-suite",
|
||||||
|
"e-suiteLogo": "Logo e-suite"
|
||||||
|
}
|
||||||
@ -2,7 +2,7 @@
|
|||||||
"island": {
|
"island": {
|
||||||
"loadError": "Échec du chargement de cette section.",
|
"loadError": "Échec du chargement de cette section.",
|
||||||
"networkError": "Erreur réseau lors de l’enregistrement.",
|
"networkError": "Erreur réseau lors de l’enregistrement.",
|
||||||
"serverError": "Erreur du serveur lors de l’enregistrement.",
|
"saveSuccess": "Enregistré avec succès.",
|
||||||
"saveSuccess": "Enregistré avec succès."
|
"serverError": "Erreur du serveur lors de l’enregistrement."
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -3,4 +3,4 @@
|
|||||||
"DisableAuthenticator": "Désactiver l’authentification à deux facteurs",
|
"DisableAuthenticator": "Désactiver l’authentification à deux facteurs",
|
||||||
"PasswordReset": "Réinitialisation du mot de passe",
|
"PasswordReset": "Réinitialisation du mot de passe",
|
||||||
"PasswordResetCompleted": "Confirmation de la réinitialisation du mot de passe"
|
"PasswordResetCompleted": "Confirmation de la réinitialisation du mot de passe"
|
||||||
}
|
}
|
||||||
6
public/locales/fr/raci.json
Normal file
6
public/locales/fr/raci.json
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
{
|
||||||
|
"Accountable": "Responsable",
|
||||||
|
"Consulted": "Consulté",
|
||||||
|
"Informed": "Bien informé",
|
||||||
|
"Responsible": "Responsable"
|
||||||
|
}
|
||||||
14
public/locales/fr/taskTypes.json
Normal file
14
public/locales/fr/taskTypes.json
Normal file
@ -0,0 +1,14 @@
|
|||||||
|
{
|
||||||
|
"AdhocApprovalTask": "Approbation Ad Hoc",
|
||||||
|
"ApprovalTask": "Approbation",
|
||||||
|
"AssetUploadTask": "Téléchargement d'actifs",
|
||||||
|
"BasicTask": "De base",
|
||||||
|
"ContentCollationTask": "Collation du contenu",
|
||||||
|
"FileReleaseTask": "Lancement du fichier",
|
||||||
|
"FormDataInputTask": "Saisie de données dans un formulaire",
|
||||||
|
"LinkActivityTask": "Activité de lien",
|
||||||
|
"MilestoneTask": "Jalon majeur",
|
||||||
|
"StageTask": "Scène",
|
||||||
|
"VisualBriefReviewTask": "Aperçu visuel sommaire",
|
||||||
|
"VisualBriefUploadTask": "Téléchargement du document visuel succinct"
|
||||||
|
}
|
||||||
@ -2,7 +2,7 @@
|
|||||||
"island": {
|
"island": {
|
||||||
"loadError": "اس حصے کو لوڈ کرنے میں ناکامی ہوئی۔",
|
"loadError": "اس حصے کو لوڈ کرنے میں ناکامی ہوئی۔",
|
||||||
"networkError": "محفوظ کرتے وقت نیٹ ورک کی خرابی۔",
|
"networkError": "محفوظ کرتے وقت نیٹ ورک کی خرابی۔",
|
||||||
"serverError": "محفوظ کرتے وقت سرور کی خرابی۔",
|
"saveSuccess": "کامیابی کے ساتھ محفوظ کر لیا گیا۔",
|
||||||
"saveSuccess": "کامیابی کے ساتھ محفوظ کر لیا گیا۔"
|
"serverError": "محفوظ کرتے وقت سرور کی خرابی۔"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -3,4 +3,4 @@
|
|||||||
"DisableAuthenticator": "ٹو فیکٹر تصدیق غیر فعال کریں",
|
"DisableAuthenticator": "ٹو فیکٹر تصدیق غیر فعال کریں",
|
||||||
"PasswordReset": "پاس ورڈ ری سیٹ",
|
"PasswordReset": "پاس ورڈ ری سیٹ",
|
||||||
"PasswordResetCompleted": "پاس ورڈ ری سیٹ کی تصدیق"
|
"PasswordResetCompleted": "پاس ورڈ ری سیٹ کی تصدیق"
|
||||||
}
|
}
|
||||||
@ -1,214 +0,0 @@
|
|||||||
param(
|
|
||||||
[string]$LocalesRoot = "./public/locales",
|
|
||||||
[string]$MasterLocale = "en",
|
|
||||||
|
|
||||||
# Azure OpenAI settings
|
|
||||||
[string]$AzureOpenAIEndpoint = "",
|
|
||||||
[string]$AzureOpenAIApiKey = "",
|
|
||||||
[string]$AzureOpenAIDeployment = "" # e.g. "gpt-4o-mini"
|
|
||||||
)
|
|
||||||
|
|
||||||
if (-not $AzureOpenAIEndpoint -or -not $AzureOpenAIApiKey -or -not $AzureOpenAIDeployment) {
|
|
||||||
Write-Host "You must provide -AzureOpenAIEndpoint, -AzureOpenAIApiKey, and -AzureOpenAIDeployment." -ForegroundColor Yellow
|
|
||||||
exit 1
|
|
||||||
}
|
|
||||||
|
|
||||||
Write-Host "Current working directory: $(Get-Location)"
|
|
||||||
Write-Host "Locales root: $LocalesRoot"
|
|
||||||
Write-Host "Master locale: $MasterLocale"
|
|
||||||
|
|
||||||
# Simple in-memory cache to avoid re-translating identical strings
|
|
||||||
$TranslationCache = @{}
|
|
||||||
|
|
||||||
function Get-FromCache {
|
|
||||||
param(
|
|
||||||
[string]$text,
|
|
||||||
[string]$targetLocale
|
|
||||||
)
|
|
||||||
|
|
||||||
$key = "$targetLocale|$text"
|
|
||||||
if ($TranslationCache.ContainsKey($key)) {
|
|
||||||
return $TranslationCache[$key]
|
|
||||||
}
|
|
||||||
return $null
|
|
||||||
}
|
|
||||||
|
|
||||||
function Add-ToCache {
|
|
||||||
param(
|
|
||||||
[string]$text,
|
|
||||||
[string]$targetLocale,
|
|
||||||
[string]$translated
|
|
||||||
)
|
|
||||||
|
|
||||||
$key = "$targetLocale|$text"
|
|
||||||
$TranslationCache[$key] = $translated
|
|
||||||
}
|
|
||||||
|
|
||||||
function Translate-Text {
|
|
||||||
param(
|
|
||||||
[string]$text,
|
|
||||||
[string]$targetLocale
|
|
||||||
)
|
|
||||||
|
|
||||||
# Check cache first
|
|
||||||
$cached = Get-FromCache -text $text -targetLocale $targetLocale
|
|
||||||
if ($cached) {
|
|
||||||
return $cached
|
|
||||||
}
|
|
||||||
|
|
||||||
$headers = @{
|
|
||||||
"api-key" = $AzureOpenAIApiKey
|
|
||||||
"Content-Type" = "application/json"
|
|
||||||
}
|
|
||||||
|
|
||||||
$systemPrompt = "You are a translation engine. Translate the user text into $targetLocale. " +
|
|
||||||
"Return ONLY the translated text with no commentary, quotes, or extra formatting."
|
|
||||||
|
|
||||||
$body = @{
|
|
||||||
messages = @(
|
|
||||||
@{
|
|
||||||
role = "system"
|
|
||||||
content = $systemPrompt
|
|
||||||
},
|
|
||||||
@{
|
|
||||||
role = "user"
|
|
||||||
content = $text
|
|
||||||
}
|
|
||||||
)
|
|
||||||
temperature = 0
|
|
||||||
} | ConvertTo-Json -Depth 10
|
|
||||||
|
|
||||||
$url = "$AzureOpenAIEndpoint/openai/deployments/$AzureOpenAIDeployment/chat/completions?api-version=2024-02-15-preview"
|
|
||||||
|
|
||||||
$maxRetries = 3
|
|
||||||
$delaySeconds = 2
|
|
||||||
|
|
||||||
for ($attempt = 1; $attempt -le $maxRetries; $attempt++) {
|
|
||||||
try {
|
|
||||||
$response = Invoke-RestMethod `
|
|
||||||
-Uri $url `
|
|
||||||
-Method Post `
|
|
||||||
-Headers $headers `
|
|
||||||
-Body $body
|
|
||||||
|
|
||||||
$translated = $response.choices[0].message.content.Trim()
|
|
||||||
Add-ToCache -text $text -targetLocale $targetLocale -translated $translated
|
|
||||||
return $translated
|
|
||||||
}
|
|
||||||
catch {
|
|
||||||
Write-Host " Translation error (attempt $attempt): $($_.Exception.Message)" -ForegroundColor Red
|
|
||||||
if ($attempt -lt $maxRetries) {
|
|
||||||
Start-Sleep -Seconds $delaySeconds
|
|
||||||
} else {
|
|
||||||
Write-Host " Failed to translate after $maxRetries attempts. Falling back to source text." -ForegroundColor Yellow
|
|
||||||
Add-ToCache -text $text -targetLocale $targetLocale -translated $text
|
|
||||||
return $text
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
function Merge-TranslationObjects {
|
|
||||||
param(
|
|
||||||
[hashtable]$master,
|
|
||||||
[hashtable]$target,
|
|
||||||
[string]$locale,
|
|
||||||
[string]$path = ""
|
|
||||||
)
|
|
||||||
|
|
||||||
foreach ($key in $master.Keys) {
|
|
||||||
$currentPath = if ($path) { "$path.$key" } else { $key }
|
|
||||||
|
|
||||||
if (-not $target.ContainsKey($key)) {
|
|
||||||
if ($master[$key] -is [string]) {
|
|
||||||
Write-Host " Missing key: $currentPath → translating to $locale"
|
|
||||||
$translated = Translate-Text -text $master[$key] -targetLocale $locale
|
|
||||||
$target[$key] = $translated
|
|
||||||
}
|
|
||||||
elseif ($master[$key] -is [hashtable]) {
|
|
||||||
$target[$key] = @{}
|
|
||||||
Merge-TranslationObjects -master $master[$key] -target $target[$key] -locale $locale -path $currentPath
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
# Non-string leaf (number, bool, etc.) – just copy
|
|
||||||
$target[$key] = $master[$key]
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
# Key exists – preserve existing value, but recurse into nested objects
|
|
||||||
if ($master[$key] -is [hashtable] -and $target[$key] -is [hashtable]) {
|
|
||||||
Merge-TranslationObjects -master $master[$key] -target $target[$key] -locale $locale -path $currentPath
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
$masterPath = Join-Path $LocalesRoot $MasterLocale
|
|
||||||
|
|
||||||
if (-not (Test-Path $masterPath)) {
|
|
||||||
Write-Host "Master locale folder not found at: $masterPath" -ForegroundColor Red
|
|
||||||
exit 1
|
|
||||||
}
|
|
||||||
|
|
||||||
$masterFiles = Get-ChildItem $masterPath -Filter *.json
|
|
||||||
|
|
||||||
if ($masterFiles.Count -eq 0) {
|
|
||||||
Write-Host "No JSON files found in master locale folder: $masterPath" -ForegroundColor Yellow
|
|
||||||
exit 0
|
|
||||||
}
|
|
||||||
|
|
||||||
$localeFolders = Get-ChildItem $LocalesRoot -Directory | Where-Object { $_.Name -ne $MasterLocale }
|
|
||||||
|
|
||||||
foreach ($localeFolder in $localeFolders) {
|
|
||||||
$localeName = $localeFolder.Name
|
|
||||||
Write-Host ""
|
|
||||||
Write-Host "Syncing locale: $localeName" -ForegroundColor Cyan
|
|
||||||
|
|
||||||
foreach ($file in $masterFiles) {
|
|
||||||
$masterFilePath = $file.FullName
|
|
||||||
$targetFilePath = Join-Path $localeFolder.FullName $file.Name
|
|
||||||
|
|
||||||
Write-Host " File: $($file.Name)"
|
|
||||||
Write-Host " Reading master file: $masterFilePath"
|
|
||||||
Write-Host " File exists: $(Test-Path $masterFilePath)"
|
|
||||||
Write-Host " File size: $((Get-Item $masterFilePath).Length) bytes"
|
|
||||||
|
|
||||||
$masterJsonRaw = Get-Content $masterFilePath -Raw -Encoding UTF8
|
|
||||||
|
|
||||||
try {
|
|
||||||
$masterJson = $masterJsonRaw | ConvertFrom-Json -AsHashtable
|
|
||||||
}
|
|
||||||
catch {
|
|
||||||
Write-Host " Error parsing master JSON: $masterFilePath" -ForegroundColor Red
|
|
||||||
continue
|
|
||||||
}
|
|
||||||
|
|
||||||
if (Test-Path $targetFilePath) {
|
|
||||||
$targetJsonRaw = Get-Content $targetFilePath -Raw -Encoding UTF8
|
|
||||||
try {
|
|
||||||
$targetJson = $targetJsonRaw | ConvertFrom-Json -AsHashtable
|
|
||||||
}
|
|
||||||
catch {
|
|
||||||
Write-Host " Error parsing target JSON, starting from empty: $targetFilePath" -ForegroundColor Yellow
|
|
||||||
$targetJson = @{}
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
Write-Host " Creating missing file: $($file.Name)"
|
|
||||||
$targetJson = @{}
|
|
||||||
}
|
|
||||||
|
|
||||||
Merge-TranslationObjects -master $masterJson -target $targetJson -locale $localeName
|
|
||||||
|
|
||||||
try {
|
|
||||||
$jsonOut = $targetJson | ConvertTo-Json -Depth 50
|
|
||||||
$jsonOut | Set-Content $targetFilePath -Encoding UTF8
|
|
||||||
Write-Host " Updated: $($file.Name)"
|
|
||||||
}
|
|
||||||
catch {
|
|
||||||
Write-Host " Error writing JSON to: $targetFilePath" -ForegroundColor Red
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
Write-Host ""
|
|
||||||
Write-Host "All locales synced and translated (where needed)." -ForegroundColor Green
|
|
||||||
@ -1,185 +0,0 @@
|
|||||||
param(
|
|
||||||
[string]$LocalesRoot = "./public/locales",
|
|
||||||
[string]$MasterLocale = "en",
|
|
||||||
[string]$GitHubToken = ""
|
|
||||||
)
|
|
||||||
|
|
||||||
Write-Host "Current working directory: $(Get-Location)"
|
|
||||||
|
|
||||||
if (-not $GitHubToken) {
|
|
||||||
Write-Host "GitHubToken not provided. Please pass -GitHubToken 'YOUR_PAT' when running the script." -ForegroundColor Yellow
|
|
||||||
exit 1
|
|
||||||
}
|
|
||||||
|
|
||||||
# Simple in-memory cache to avoid re-translating identical strings
|
|
||||||
$TranslationCache = @{}
|
|
||||||
|
|
||||||
function Get-FromCache {
|
|
||||||
param(
|
|
||||||
[string]$text,
|
|
||||||
[string]$targetLocale
|
|
||||||
)
|
|
||||||
|
|
||||||
$key = "$targetLocale|$text"
|
|
||||||
if ($TranslationCache.ContainsKey($key)) {
|
|
||||||
return $TranslationCache[$key]
|
|
||||||
}
|
|
||||||
return $null
|
|
||||||
}
|
|
||||||
|
|
||||||
function Add-ToCache {
|
|
||||||
param(
|
|
||||||
[string]$text,
|
|
||||||
[string]$targetLocale,
|
|
||||||
[string]$translated
|
|
||||||
)
|
|
||||||
|
|
||||||
$key = "$targetLocale|$text"
|
|
||||||
$TranslationCache[$key] = $translated
|
|
||||||
}
|
|
||||||
|
|
||||||
function Translate-Text {
|
|
||||||
param(
|
|
||||||
[string]$text,
|
|
||||||
[string]$targetLocale,
|
|
||||||
[string]$githubToken
|
|
||||||
)
|
|
||||||
|
|
||||||
$headers = @{
|
|
||||||
"Authorization" = "Bearer $githubToken"
|
|
||||||
"X-GitHub-Api-Version" = "2023-07-07"
|
|
||||||
"Content-Type" = "application/json"
|
|
||||||
}
|
|
||||||
|
|
||||||
$body = @{
|
|
||||||
messages = @(
|
|
||||||
@{
|
|
||||||
role = "system"
|
|
||||||
content = "You are a translation engine. Translate the user text into $targetLocale. Return ONLY the translated text with no commentary."
|
|
||||||
},
|
|
||||||
@{
|
|
||||||
role = "user"
|
|
||||||
content = $text
|
|
||||||
}
|
|
||||||
)
|
|
||||||
} | ConvertTo-Json -Depth 10
|
|
||||||
|
|
||||||
$response = Invoke-RestMethod `
|
|
||||||
-Uri "https://api.githubcopilot.com/chat/completions" `
|
|
||||||
-Method Post `
|
|
||||||
-Headers $headers `
|
|
||||||
-Body $body
|
|
||||||
|
|
||||||
return $response.choices[0].message.content.Trim()
|
|
||||||
}
|
|
||||||
|
|
||||||
function Merge-TranslationObjects {
|
|
||||||
param(
|
|
||||||
[hashtable]$master,
|
|
||||||
[hashtable]$target,
|
|
||||||
[string]$locale,
|
|
||||||
[string]$path = ""
|
|
||||||
)
|
|
||||||
|
|
||||||
foreach ($key in $master.Keys) {
|
|
||||||
$currentPath = if ($path) { "$path.$key" } else { $key }
|
|
||||||
|
|
||||||
if (-not $target.ContainsKey($key)) {
|
|
||||||
if ($master[$key] -is [string]) {
|
|
||||||
Write-Host " Missing key: $currentPath → translating to $locale"
|
|
||||||
$translated = Translate-Text -text $master[$key] -targetLocale $locale -githubToken $GitHubToken
|
|
||||||
$target[$key] = $translated
|
|
||||||
}
|
|
||||||
elseif ($master[$key] -is [hashtable]) {
|
|
||||||
$target[$key] = @{}
|
|
||||||
Merge-TranslationObjects -master $master[$key] -target $target[$key] -locale $locale -path $currentPath
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
# Non-string leaf (number, bool, etc.) – just copy
|
|
||||||
$target[$key] = $master[$key]
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
# Key exists – preserve existing value, but recurse into nested objects
|
|
||||||
if ($master[$key] -is [hashtable] -and $target[$key] -is [hashtable]) {
|
|
||||||
Merge-TranslationObjects -master $master[$key] -target $target[$key] -locale $locale -path $currentPath
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
Write-Host "Locales root: $LocalesRoot"
|
|
||||||
Write-Host "Master locale: $MasterLocale"
|
|
||||||
|
|
||||||
$masterPath = Join-Path $LocalesRoot $MasterLocale
|
|
||||||
|
|
||||||
if (-not (Test-Path $masterPath)) {
|
|
||||||
Write-Host "Master locale folder not found at: $masterPath" -ForegroundColor Red
|
|
||||||
exit 1
|
|
||||||
}
|
|
||||||
|
|
||||||
$masterFiles = Get-ChildItem $masterPath -Filter *.json
|
|
||||||
|
|
||||||
if ($masterFiles.Count -eq 0) {
|
|
||||||
Write-Host "No JSON files found in master locale folder: $masterPath" -ForegroundColor Yellow
|
|
||||||
exit 0
|
|
||||||
}
|
|
||||||
|
|
||||||
$localeFolders = Get-ChildItem $LocalesRoot -Directory | Where-Object { $_.Name -ne $MasterLocale }
|
|
||||||
|
|
||||||
foreach ($localeFolder in $localeFolders) {
|
|
||||||
$localeName = $localeFolder.Name
|
|
||||||
Write-Host ""
|
|
||||||
Write-Host "Syncing locale: $localeName" -ForegroundColor Cyan
|
|
||||||
|
|
||||||
foreach ($file in $masterFiles) {
|
|
||||||
$masterFilePath = $file.FullName
|
|
||||||
$targetFilePath = Join-Path $localeFolder.FullName $file.Name
|
|
||||||
|
|
||||||
Write-Host " File: $($file.Name)"
|
|
||||||
|
|
||||||
Write-Host " Reading master file: $masterFilePath"
|
|
||||||
Write-Host " File exists: $(Test-Path $masterFilePath)"
|
|
||||||
Write-Host " File size: $((Get-Item $masterFilePath).Length) bytes"
|
|
||||||
|
|
||||||
$masterJsonRaw = Get-Content $masterFilePath -Raw -Encoding UTF8
|
|
||||||
|
|
||||||
try {
|
|
||||||
$masterJson = $masterJsonRaw | ConvertFrom-Json -AsHashtable
|
|
||||||
}
|
|
||||||
catch {
|
|
||||||
Write-Host " Error parsing master JSON: $masterFilePath" -ForegroundColor Red
|
|
||||||
continue
|
|
||||||
}
|
|
||||||
|
|
||||||
if (Test-Path $targetFilePath) {
|
|
||||||
$targetJsonRaw = Get-Content $targetFilePath -Raw -Encoding UTF8
|
|
||||||
|
|
||||||
try {
|
|
||||||
$targetJson = $targetJsonRaw | ConvertFrom-Json -AsHashtable
|
|
||||||
}
|
|
||||||
catch {
|
|
||||||
Write-Host " Error parsing target JSON, starting from empty: $targetFilePath" -ForegroundColor Yellow
|
|
||||||
$targetJson = @{}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
Write-Host " Creating missing file: $($file.Name)"
|
|
||||||
$targetJson = @{}
|
|
||||||
}
|
|
||||||
|
|
||||||
Merge-TranslationObjects -master $masterJson -target $targetJson -locale $localeName
|
|
||||||
|
|
||||||
try {
|
|
||||||
$jsonOut = $targetJson | ConvertTo-Json -Depth 50
|
|
||||||
$jsonOut | Set-Content $targetFilePath -Encoding UTF8
|
|
||||||
Write-Host " Updated: $($file.Name)"
|
|
||||||
}
|
|
||||||
catch {
|
|
||||||
Write-Host " Error writing JSON to: $targetFilePath" -ForegroundColor Red
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
Write-Host ""
|
|
||||||
Write-Host "All locales synced and translated (where needed)." -ForegroundColor Green
|
|
||||||
Loading…
Reference in New Issue
Block a user