Compare commits

...

12 Commits
0.8.3 ... main

Author SHA1 Message Date
25d3214381 Update German translation (#10)
Reviewed-on: #10
Co-authored-by: Animan8000 <animan8000@noreply.localhost>
Co-committed-by: Animan8000 <animan8000@noreply.localhost>
2025-05-02 03:46:29 -07:00
699407232f Add alternative loading 2025-04-29 01:37:42 +02:00
72c666a943 update zh.js (#9)
Reviewed-on: #9
Co-authored-by: wxhn1225 <1317421184@qq.com>
Co-committed-by: wxhn1225 <1317421184@qq.com>
2025-02-07 17:53:36 -08:00
5277104444 Updated Russian translation (#8)
Reviewed-on: #8
Co-authored-by: azdful <zaripovmisch@yandex.ru>
Co-committed-by: azdful <zaripovmisch@yandex.ru>
2025-02-06 11:07:25 -08:00
054b534659 Actualiser client-webui/fr.js (#7)
Translated two new strings

Reviewed-on: #7
Co-authored-by: Vitruvio <vitruvio@noreply.localhost>
Co-committed-by: Vitruvio <vitruvio@noreply.localhost>
2025-02-06 11:07:06 -08:00
8600e26ea3 Updated German translation (#6)
Maybe the label strings could be improved, at least it sounds a little weird to me and I wasn't too sure yet, how it could sound better.

Reviewed-on: #6
Co-authored-by: Animan8000 <animan8000@noreply.localhost>
Co-committed-by: Animan8000 <animan8000@noreply.localhost>
2025-02-06 08:36:59 -08:00
c2321f7bdc Add reload_label_replacements 2025-02-06 00:05:20 +01:00
3bea0cefd6 Add dont_resolve_labels 2025-02-05 22:02:32 +01:00
2cc5873fc6 French translation (#5)
Reviewed-on: http://209.141.38.3/OpenWF/Translations/pulls/5
Co-authored-by: Vitruvios <gilian98@gmail.com>
Co-committed-by: Vitruvios <gilian98@gmail.com>
2025-02-04 12:44:31 -08:00
704bbce9bb Add strings for update checker 2025-02-04 20:34:33 +01:00
29a38530a2 Add update script 2025-02-04 20:27:57 +01:00
388a884343 Normalise line endings 2025-02-04 20:20:25 +01:00
7 changed files with 223 additions and 125 deletions

1
.gitattributes vendored Normal file
View File

@ -0,0 +1 @@
*.js text eof=lf

View File

@ -1,5 +1,12 @@
// German translation by Animan8000 // German translation by Animan8000
dict = { dict = {
checking_updates: `Suche nach Updates...`,
update_check_fail: `Fehler beim Überprüfen von Updates.`,
no_update: `Du verwendest OpenWF Bootstrapper v<span class="local-version-full"></span>. Es sind derzeit keine Updates verfügbar.`,
dll_to_dll_update: `Du verwendest OpenWF Bootstrapper v<span class="local-version"></span>. Dies ist nicht die neueste Version, aber ein Update würde erfordern, dass du das Spiel schließt, von daher mache dir keine Sorgen im Moment.`,
dll_to_hotfix_update: `Du verwendest OpenWF Bootstrapper v<span class="local-version"></span>. Der neueste Hotfix für diese DLL ist <b class="hotfix-available"></b>. Falls du möchtest, kann ich es <a href="#" onclick="fetch('/download_latest_hotfix')">herunterladen und jetzt anwenden</a> — kein Neustart erforderlich.`,
hotfix_to_hotfix_update: `Du verwendest OpenWF Bootstrapper v<span class="local-version-full"></span>. Der neueste Hotfix ist <b class="hotfix-available"></b>. Falls du möchtest, kann ich es <a href="#" onclick="fetch('/download_latest_hotfix')">herunterladen und jetzt anwenden</a> — kein Neustart erforderlich.`,
server_host: `Server-Host`, server_host: `Server-Host`,
server_host_submit: `Ändern`, server_host_submit: `Ändern`,
logout: `Abmelden`, logout: `Abmelden`,
@ -8,9 +15,12 @@ dict = {
simulacrum_blacklisted: `Gesperrte Gegner im Simulacrum`, simulacrum_blacklisted: `Gesperrte Gegner im Simulacrum`,
simulacrum_whitelisted: `Erlaubte Gegner im Simulacrum`, simulacrum_whitelisted: `Erlaubte Gegner im Simulacrum`,
pause_always_stops_time: `Pause stoppt immer die Zeit`, pause_always_stops_time: `Pause stoppt immer die Zeit`,
alternative_loading: `Alternatives Laden`,
ee_log_in_console: `EE.log in Konsole`, ee_log_in_console: `EE.log in Konsole`,
dont_resolve_labels: `Labels nicht auflösen`,
fov_override: `Sichtfeld (FOV) überschreiben (0 = deaktiviert)`, fov_override: `Sichtfeld (FOV) überschreiben (0 = deaktiviert)`,
save_config: `Speichere Änderungen in client_config.json`, save_config: `Speichere Änderungen in client_config.json`,
reload_label_replacements: `Label-Ersetzungen neuladen`,
camtype: `Kameratyp`, camtype: `Kameratyp`,
gamecam: `Normal`, gamecam: `Normal`,

View File

@ -1,41 +1,51 @@
dict = { dict = {
server_host: `Server Host`, checking_updates: `Checking for updates...`,
server_host_submit: `Change`, update_check_fail: `Failed to check for updates.`,
logout: `Logout`, no_update: `You are running OpenWF Bootstrapper v<span class="local-version-full"></span>. No updates are available right now.`,
high_damage_numbers_patch: `High Damage Numbers Patch`, dll_to_dll_update: `You are running OpenWF Bootstrapper v<span class="local-version"></span>. This is not the latest version, but updating would require you to close the game, so don't worry about it right now.`,
skip_mission_start_timer: `Skip Mission Start Timer`, dll_to_hotfix_update: `You are running OpenWF Bootstrapper v<span class="local-version"></span>. The latest hotfix for this DLL is <b class="hotfix-available"></b>. If you want, I can <a href="#" onclick="fetch('/download_latest_hotfix')">download and apply it now</a> — no restart required.`,
simulacrum_blacklisted: `Blacklisted Enemies in Simulacrum`, hotfix_to_hotfix_update: `You are running OpenWF Bootstrapper v<span class="local-version-full"></span>. The latest hotfix is <b class="hotfix-available"></b>. If you want, I can <a href="#" onclick="fetch('/download_latest_hotfix')">download and apply it now</a> — no restart required.`,
simulacrum_whitelisted: `Whitelisted Enemies in Simulacrum`,
pause_always_stops_time: `Pause Always Stops Time`, server_host: `Server Host`,
ee_log_in_console: `EE.log in Console`, server_host_submit: `Change`,
fov_override: `FOV Override (0 = disabled)`, logout: `Logout`,
save_config: `Save changes to client_config.json`, high_damage_numbers_patch: `High Damage Numbers Patch`,
skip_mission_start_timer: `Skip Mission Start Timer`,
camtype: `Camera Type`, simulacrum_blacklisted: `Blacklisted Enemies in Simulacrum`,
gamecam: `Normal`, simulacrum_whitelisted: `Whitelisted Enemies in Simulacrum`,
freecam: `Freecam`, pause_always_stops_time: `Pause Always Stops Time`,
lockcam: `Locked In Place`, alternative_loading: `Alternative Loading`,
pos: `Position`, ee_log_in_console: `EE.log in Console`,
tp_submit: `Teleport To`, dont_resolve_labels: `Don't Resolve Labels`,
custom: `Custom`, fov_override: `FOV Override (0 = disabled)`,
marker: `|TYPE| in |DIST|m`, save_config: `Save changes to client_config.json`,
marker_unk: `Marker`, reload_label_replacements: `Reload Label Replacements`,
marker_obj: `Objective`,
marker_target: `Target`, camtype: `Camera Type`,
marker_surcap: `Life Support Capsule`, gamecam: `Normal`,
marker_surpup: `Life Support Module`, freecam: `Freecam`,
marker_a: `A`, lockcam: `Locked In Place`,
marker_b: `B`, pos: `Position`,
marker_c: `C`, tp_submit: `Teleport To`,
marker_wp: `Waypoint`, custom: `Custom`,
marker_focus: `Focus`, marker: `|TYPE| in |DIST|m`,
marker_extract: `Extraction`, marker_unk: `Marker`,
marker_obj: `Objective`,
enable_auto_start: `Enable Auto Start`, marker_target: `Target`,
disable_auto_start: `Disable Auto Start`, marker_surcap: `Life Support Capsule`,
clear_script_log: `Clear Script Log`, marker_surpup: `Life Support Module`,
console: `Console`, marker_a: `A`,
marker_b: `B`,
err: `Connection to DLL lost.`, marker_c: `C`,
err_retry: `Attempt to reconnect.`, marker_wp: `Waypoint`,
marker_focus: `Focus`,
marker_extract: `Extraction`,
enable_auto_start: `Enable Auto Start`,
disable_auto_start: `Disable Auto Start`,
clear_script_log: `Clear Script Log`,
console: `Console`,
err: `Connection to DLL lost.`,
err_retry: `Attempt to reconnect.`,
} }

View File

@ -1,42 +1,52 @@
// French translation by Vitruvio (zexal.) // French translation by Vitruvio (zexal.)
dict = { dict = {
server_host: `Hôte (serveur)`, checking_updates: `Recherche de mise à jour...`,
server_host_submit: `Modifier`, update_check_fail: `Recherche de mise à jour impossible.`,
logout: `Déconnexion`, no_update: `OpenWF Bootstrapper v<span class="local-version-full"></span> est en cours d'execution. Aucune mise à jour disponible pour le moment.`,
high_damage_numbers_patch: `Patch du cap de dégâts`, dll_to_dll_update: `OpenWF Bootstrapper v<span class="local-version"></span> est en cours d'execution. Une nouvelle version est disponible et requiert la fermeture du jeu.`,
skip_mission_start_timer: `Passer le compte à rebours du début de mission`, dll_to_hotfix_update: `OpenWF Bootstrapper v<span class="local-version"></span> est en cours d'execution. <b class="hotfix-available"></b> est disponible. Pour télécharger et appliquer cette version, <a href="#" onclick="fetch('/download_latest_hotfix')">cliquez ici</a> — aucun redémarrage nécessaire.`,
simulacrum_blacklisted: `Liste noir des ennemis en Simulacre`, hotfix_to_hotfix_update: `OpenWF Bootstrapper v<span class="local-version-full"></span> est en cours d'execution. <b class="hotfix-available"></b>est disponible. Pour télécharger et appliquer cette version, <a href="#" onclick="fetch('/download_latest_hotfix')">cliquez ici</a> — aucun redémarrage nécessaire.`,
simulacrum_whitelisted: `Liste blanche des ennemis en Simulacre`,
pause_always_stops_time: `Pause arrête le temps`, server_host: `Hôte (serveur)`,
ee_log_in_console: `La console affiche le EE.log`, server_host_submit: `Modifier l'hôte (serveur)`,
fov_override: `Override du champ de vision (0 = désactivé)`, logout: `Déconnexion`,
save_config: `Sauvegarder les paramètres dans client_config.json`, high_damage_numbers_patch: `Patch du cap de dégâts`,
skip_mission_start_timer: `Passer le compte à rebours du début de mission`,
camtype: `Type de caméra`, simulacrum_blacklisted: `Liste noire des ennemis en Simulacre`,
gamecam: `Normal`, simulacrum_whitelisted: `Liste blanche des ennemis en Simulacre`,
freecam: `Caméra libre`, pause_always_stops_time: `Pause arrête le temps`,
lockcam: `Caméra bloquée sur place`, alternative_loading: `[UNTRANSLATED] Alternative Loading`,
pos: `Position`, ee_log_in_console: `La console affiche le EE.log`,
tp_submit: `Se teleporter vers`, dont_resolve_labels: `Ne pas résoudre les étiquettes`,
custom: `Personnalisé`, fov_override: `Override du champ de vision (0 = désactivé)`,
marker: `|TYPE| in |DIST|m`, save_config: `Sauvegarder les paramètres dans client_config.json`,
marker_unk: `Marker`, reload_label_replacements: `Recharger les remplacements détiquettes`,
marker_obj: `Objectif`,
marker_target: `Cible`, camtype: `Type de caméra`,
marker_surcap: `Capsule de survie`, gamecam: `Normal`,
marker_surpup: `Module de survie`, freecam: `Caméra libre`,
marker_a: `A`, lockcam: `Caméra verrouillée`,
marker_b: `B`, pos: `Position`,
marker_c: `C`, tp_submit: `Se teleporter vers`,
marker_wp: `Marqueur`, custom: `Personnalisé`,
marker_focus: `Focus`, marker: `|TYPE| à |DIST|m`,
marker_extract: `Extraction`, marker_unk: `Marqueur`,
marker_obj: `Objectif`,
enable_auto_start: `Activer le lancement auto`, marker_target: `Cible`,
disable_auto_start: `Désactiver le lancement auto`, marker_surcap: `Capsule de survie`,
clear_script_log: `Vider le log du script`, marker_surpup: `Module de survie`,
console: `Console`, marker_a: `A`,
marker_b: `B`,
err: `Connexion au DLL perdue.`, marker_c: `C`,
err_retry: `Tentative de reconnexion.`, marker_wp: `Marqueur`,
} marker_focus: `Focus`,
marker_extract: `Extraction`,
enable_auto_start: `Activer le lancement auto`,
disable_auto_start: `Désactiver le lancement auto`,
clear_script_log: `Vider le log du script`,
console: `Console`,
err: `Connexion au DLL perdue.`,
err_retry: `Tentative de reconnexion.`,
}

View File

@ -1,42 +1,52 @@
// Russian translation by azdful // Russian translation by azdful
dict = { dict = {
server_host: `Хост Сервера`, checking_updates: `Проверка обновлений...`,
server_host_submit: `Изменить`, update_check_fail: `Не удалось проверить наличие обновлений.`,
logout: `Выход`, no_update: `Вы используете Загрузчик OpenWF v<span class="local-version-full"></span>. Обновлений нет.`,
high_damage_numbers_patch: `Патч Высоких Значений Урона`, dll_to_dll_update: `Вы используете Загрузчик OpenWF v<span class="local-version"></span>. Это не последняя версия, но для обновления придется закрыть игру, так что не волнуйтесь об этом сейчас.`,
skip_mission_start_timer: `Пропустить Таймер Запуска Миссии`, dll_to_hotfix_update: `Вы используете Загрузчик OpenWF v<span class="local-version"></span>. Последний хотфикс для DLL — <b class="hotfix-available"></b>. Если желаете, можно <a href="#" onclick="fetch('/download_latest_hotfix')">скачать и применить его сейчас</a> — перезапуск не потребуется.`,
simulacrum_blacklisted: `Враги из черного списка в Симулякруме`, hotfix_to_hotfix_update: `Вы используете Загрузчик OpenWF v<span class="local-version-full"></span>. Последний хотфикс — <b class="hotfix-available"></b>. Если желаете, можно <a href="#" onclick="fetch('/download_latest_hotfix')">скачать и применить его сейчас</a> — перезапуск не потребуется.`,
simulacrum_whitelisted: `Враги из белого списка в Симулякруме`,
pause_always_stops_time: `Пауза Всегда Останавливает Время`, server_host: `Хост Сервера`,
ee_log_in_console: `EE.log в Консоль`, server_host_submit: `Изменить`,
fov_override: `Перезапись FOV (0 = отключена)`, logout: `Выход`,
save_config: `Сохранить изменения в client_config.json`, high_damage_numbers_patch: `Патч Высоких Значений Урона`,
skip_mission_start_timer: `Пропустить Таймер Запуска Миссии`,
camtype: `Тип Камеры`, simulacrum_blacklisted: `Враги из Черного Списка в Симулякруме`,
gamecam: `Нормальная`, simulacrum_whitelisted: `Враги из Белого Списка в Симулякруме`,
freecam: `Свободная`, pause_always_stops_time: `Пауза Всегда Останавливает Время`,
lockcam: `Фиксированная`, alternative_loading: `[UNTRANSLATED] Alternative Loading`,
pos: `Позиция`, ee_log_in_console: `EE.log в Консоль`,
tp_submit: `Телепортироваться к`, dont_resolve_labels: `Не Разрешать Ярлычки`,
custom: `Пользовательское`, fov_override: `Перезапись FOV (0 = отключена)`,
marker: `|TYPE| через |DIST|м`, save_config: `Сохранить изменения в client_config.json`,
marker_unk: `Метка`, reload_label_replacements: `Перезагрузить Замены Ярлычков`,
marker_obj: `Цель`,
marker_target: `Цель`, camtype: `Тип Камеры`,
marker_surcap: `Капсула Жизнеобеспечения`, gamecam: `Нормальная`,
marker_surpup: `Модуль Жизнеобеспечения`, freecam: `Свободная`,
marker_a: `A`, lockcam: `Фиксированная`,
marker_b: `B`, pos: `Позиция`,
marker_c: `C`, tp_submit: `Телепортироваться к`,
marker_wp: `Метка`, custom: `Пользовательское`,
marker_focus: `Фокус`, marker: `|TYPE| через |DIST|м`,
marker_extract: `Эвакуация`, marker_unk: `Метка`,
marker_obj: `Цель`,
enable_auto_start: `Включить Авто Запуск`, marker_target: `Цель`,
disable_auto_start: `Отключить Авто Запуск`, marker_surcap: `Капсула Жизнеобеспечения`,
clear_script_log: `Очистить Лог Скриптов`, marker_surpup: `Модуль Жизнеобеспечения`,
console: `Консоль`, marker_a: `A`,
marker_b: `B`,
err: `Соединение с DLL потеряно.`, marker_c: `C`,
err_retry: `Попытка восстановить соединение.`, marker_wp: `Метка`,
} marker_focus: `Фокус`,
marker_extract: `Эвакуация`,
enable_auto_start: `Включить Авто Запуск`,
disable_auto_start: `Отключить Авто Запуск`,
clear_script_log: `Очистить Лог Скриптов`,
console: `Консоль`,
err: `Соединение с DLL потеряно.`,
err_retry: `Попытка восстановить соединение.`,
}

View File

@ -1,5 +1,12 @@
// Chinese translation by 喜欢 (wxhn1225) // Chinese translation by 喜欢 (wxhn1225)
dict = { dict = {
checking_updates: `正在检查更新...`,
update_check_fail: `检查更新失败。`,
no_update: `你当前运行的是OpenWF引导程序v<span class="local-version-full"></span>。目前没有可用的更新。`,
dll_to_dll_update: `你当前运行的是OpenWF引导程序v<span class="local-version"></span>。目前不是最新版本,若想更新,需先关闭游戏。`,
dll_to_hotfix_update: `你当前运行的是OpenWF引导程序v<span class="local-version"></span>。DLL的最新热修版本为<b class="hotfix-available"></b>。此处<a href="#" onclick="fetch('/download_latest_hotfix')">可立即下载并应用最新版本</a> — 无需重启游戏。`,
hotfix_to_hotfix_update: `你当前运行的是OpenWF引导程序v<span class="local-version-full"></span>。最新的热修复版本为<b class="hotfix-available"></b>。此处<a href="#" onclick="fetch('/download_latest_hotfix')">可立即下载并应用最新版本</a> — 无需重启游戏。`,
server_host: `服务器主机`, server_host: `服务器主机`,
server_host_submit: `更改`, server_host_submit: `更改`,
logout: `注销`, logout: `注销`,
@ -8,9 +15,12 @@ dict = {
simulacrum_blacklisted: `幻影装置的隐藏敌人`, simulacrum_blacklisted: `幻影装置的隐藏敌人`,
simulacrum_whitelisted: `幻影装置的默认敌人`, simulacrum_whitelisted: `幻影装置的默认敌人`,
pause_always_stops_time: `Esc暂停游戏`, pause_always_stops_time: `Esc暂停游戏`,
alternative_loading: `[UNTRANSLATED] Alternative Loading`,
ee_log_in_console: `在控制台输出EE.log`, ee_log_in_console: `在控制台输出EE.log`,
dont_resolve_labels: `取消本地化`,
fov_override: `视野重写 (0 = 关闭)`, fov_override: `视野重写 (0 = 关闭)`,
save_config: `在client_config.json保存更改`, save_config: `在client_config.json保存更改`,
reload_label_replacements: `重新加载文本替换`,
camtype: `镜头类型`, camtype: `镜头类型`,
gamecam: `正常`, gamecam: `正常`,
@ -39,4 +49,4 @@ dict = {
err: `与DLL连接丢失。`, err: `与DLL连接丢失。`,
err_retry: `尝试重连。`, err_retry: `尝试重连。`,
} }

47
update.php Normal file
View File

@ -0,0 +1,47 @@
<?php
function extract_strings($cont)
{
preg_match_all("/([a-z_]+): `([^`]*)`,/", $cont, $matches, PREG_SET_ORDER, 0);
$strings = [];
foreach ($matches as $match)
{
$strings[$match[1]] = $match[2];
}
return $strings;
}
$source = file_get_contents("client-webui/en.js");
$source_strings = extract_strings($source);
$source_lines = explode("\n", $source);
foreach (scandir("client-webui") as $file)
{
if (is_file("client-webui/$file") && $file != "en.js")
{
$cont = file_get_contents("client-webui/$file");
$target_strings = extract_strings($cont);
$fh = fopen("client-webui/$file", "wb");
fwrite($fh, explode("\n", $cont)[0]."\n");
foreach ($source_lines as $line)
{
if ($strings = extract_strings($line))
{
foreach ($strings as $key => $value)
{
if (array_key_exists($key, $target_strings))
{
fwrite($fh, "\t$key: `$target_strings[$key]`,\n");
}
else
{
fwrite($fh, "\t$key: `[UNTRANSLATED] $value`,\n");
}
}
}
else
{
fwrite($fh, $line."\n");
}
}
}
}