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,4 +1,11 @@
dict = { dict = {
checking_updates: `Checking for updates...`,
update_check_fail: `Failed to check for updates.`,
no_update: `You are running OpenWF Bootstrapper v<span class="local-version-full"></span>. No updates are available right now.`,
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.`,
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.`,
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.`,
server_host: `Server Host`, server_host: `Server Host`,
server_host_submit: `Change`, server_host_submit: `Change`,
logout: `Logout`, logout: `Logout`,
@ -7,9 +14,12 @@ dict = {
simulacrum_blacklisted: `Blacklisted Enemies in Simulacrum`, simulacrum_blacklisted: `Blacklisted Enemies in Simulacrum`,
simulacrum_whitelisted: `Whitelisted Enemies in Simulacrum`, simulacrum_whitelisted: `Whitelisted Enemies in Simulacrum`,
pause_always_stops_time: `Pause Always Stops Time`, pause_always_stops_time: `Pause Always Stops Time`,
alternative_loading: `Alternative Loading`,
ee_log_in_console: `EE.log in Console`, ee_log_in_console: `EE.log in Console`,
dont_resolve_labels: `Don't Resolve Labels`,
fov_override: `FOV Override (0 = disabled)`, fov_override: `FOV Override (0 = disabled)`,
save_config: `Save changes to client_config.json`, save_config: `Save changes to client_config.json`,
reload_label_replacements: `Reload Label Replacements`,
camtype: `Camera Type`, camtype: `Camera Type`,
gamecam: `Normal`, gamecam: `Normal`,

View File

@ -1,26 +1,36 @@
// French translation by Vitruvio (zexal.) // French translation by Vitruvio (zexal.)
dict = { dict = {
checking_updates: `Recherche de mise à jour...`,
update_check_fail: `Recherche de mise à jour impossible.`,
no_update: `OpenWF Bootstrapper v<span class="local-version-full"></span> est en cours d'execution. Aucune mise à jour disponible pour le moment.`,
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.`,
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.`,
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.`,
server_host: `Hôte (serveur)`, server_host: `Hôte (serveur)`,
server_host_submit: `Modifier`, server_host_submit: `Modifier l'hôte (serveur)`,
logout: `Déconnexion`, logout: `Déconnexion`,
high_damage_numbers_patch: `Patch du cap de dégâts`, high_damage_numbers_patch: `Patch du cap de dégâts`,
skip_mission_start_timer: `Passer le compte à rebours du début de mission`, skip_mission_start_timer: `Passer le compte à rebours du début de mission`,
simulacrum_blacklisted: `Liste noir des ennemis en Simulacre`, simulacrum_blacklisted: `Liste noire des ennemis en Simulacre`,
simulacrum_whitelisted: `Liste blanche des ennemis en Simulacre`, simulacrum_whitelisted: `Liste blanche des ennemis en Simulacre`,
pause_always_stops_time: `Pause arrête le temps`, pause_always_stops_time: `Pause arrête le temps`,
alternative_loading: `[UNTRANSLATED] Alternative Loading`,
ee_log_in_console: `La console affiche le EE.log`, ee_log_in_console: `La console affiche le EE.log`,
dont_resolve_labels: `Ne pas résoudre les étiquettes`,
fov_override: `Override du champ de vision (0 = désactivé)`, fov_override: `Override du champ de vision (0 = désactivé)`,
save_config: `Sauvegarder les paramètres dans client_config.json`, save_config: `Sauvegarder les paramètres dans client_config.json`,
reload_label_replacements: `Recharger les remplacements détiquettes`,
camtype: `Type de caméra`, camtype: `Type de caméra`,
gamecam: `Normal`, gamecam: `Normal`,
freecam: `Caméra libre`, freecam: `Caméra libre`,
lockcam: `Caméra bloquée sur place`, lockcam: `Caméra verrouillée`,
pos: `Position`, pos: `Position`,
tp_submit: `Se teleporter vers`, tp_submit: `Se teleporter vers`,
custom: `Personnalisé`, custom: `Personnalisé`,
marker: `|TYPE| in |DIST|m`, marker: `|TYPE| à |DIST|m`,
marker_unk: `Marker`, marker_unk: `Marqueur`,
marker_obj: `Objectif`, marker_obj: `Objectif`,
marker_target: `Cible`, marker_target: `Cible`,
marker_surcap: `Capsule de survie`, marker_surcap: `Capsule de survie`,

View File

@ -1,16 +1,26 @@
// Russian translation by azdful // Russian translation by azdful
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: `Выход`,
high_damage_numbers_patch: `Патч Высоких Значений Урона`, high_damage_numbers_patch: `Патч Высоких Значений Урона`,
skip_mission_start_timer: `Пропустить Таймер Запуска Миссии`, skip_mission_start_timer: `Пропустить Таймер Запуска Миссии`,
simulacrum_blacklisted: `Враги из черного списка в Симулякруме`, simulacrum_blacklisted: `Враги из Черного Списка в Симулякруме`,
simulacrum_whitelisted: `Враги из белого списка в Симулякруме`, simulacrum_whitelisted: `Враги из Белого Списка в Симулякруме`,
pause_always_stops_time: `Пауза Всегда Останавливает Время`, pause_always_stops_time: `Пауза Всегда Останавливает Время`,
alternative_loading: `[UNTRANSLATED] Alternative Loading`,
ee_log_in_console: `EE.log в Консоль`, ee_log_in_console: `EE.log в Консоль`,
dont_resolve_labels: `Не Разрешать Ярлычки`,
fov_override: `Перезапись FOV (0 = отключена)`, fov_override: `Перезапись FOV (0 = отключена)`,
save_config: `Сохранить изменения в client_config.json`, save_config: `Сохранить изменения в client_config.json`,
reload_label_replacements: `Перезагрузить Замены Ярлычков`,
camtype: `Тип Камеры`, camtype: `Тип Камеры`,
gamecam: `Нормальная`, gamecam: `Нормальная`,

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: `正常`,

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");
}
}
}
}