Skip to content

Commit 8cc9c86

Browse files
committed
Load some mod translation with R2API.Language
Files specified in LanguageAPIWhitelist.conf will have "strings" replaced with "uk" and loaded like .language files at runtime. The config must be in the directory with mods translation files (lang_mods/uk).
1 parent 3423c6b commit 8cc9c86

11 files changed

Lines changed: 50 additions & 8 deletions

CHANGELOG.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@
1414
* TeammateRevival (в певний момент його переклад загубився, прийшлося переробити)
1515
* The_Occultists
1616
* WolfoFixes
17+
* Тепер переклади більшості модів завантажуються через вбудований завантажувач токенів, файли перекладу зазначені у LanguageAPIWhitelist.conf будуть завантажені використовуючи R2API.Language.
1718

1819
### 1.5.0
1920
* Файли оновлено до версії гри 1.4.1#912*

Makefile

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ LANG_FILES = \
1010
language.json \
1111
output-ukrainian.json
1212
LANG_DEPS = $(addprefix lang/uk/, ${LANG_FILES})
13-
LANG_MODS_DEPS = $(wildcard lang_mods/uk/*.json)
13+
LANG_MODS_DEPS = $(wildcard lang_mods/uk/*.json) lang_mods/LanguageAPIWhitelist.conf
1414
PLUGIN = plugin/bin/Release/Risk_of_Rain_2_Ukrainian.dll
1515
METADATA = \
1616
manifest.json \
@@ -47,7 +47,7 @@ ${MOD_RELEASE_ARCHIVE}: ${PLUGIN} ${METADATA} ${LANG_DEPS} ${LANG_MODS_DEPS}
4747
rsync ${PLUGIN} ${BUILD_DIR}/plugins/
4848
rsync ${LANG_DEPS} ${BUILD_DIR}/plugins/lang/uk/
4949
@if [ -n "$(LANG_MODS_DEPS)" ]; then \
50-
rsync ${LANG_MODS_DEPS} ${BUILD_DIR}/plugins/lang_mods/uk/ --exclude-from=wip-mods.txt; \
50+
rsync ${LANG_MODS_DEPS} ${BUILD_DIR}/plugins/lang_mods/uk/ --exclude-from=lang_mods/wip-mods.txt; \
5151
else \
5252
echo No translations for mods found, skipping; \
5353
fi
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
Arsonist.json
2+
LostThroughTime.json
3+
RiskOfNoir.json
4+
The_Occultists.json

lang_mods/Makefile

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -41,5 +41,4 @@ ${LANG_DIR}/%.json: ${PO_DIR}/%.po
4141
@echo "Building $@"
4242
po2json -t ${JSON_DIR} $< $@ --removeuntranslated
4343

44-
# Prettify
45-
jq . $@ > $@.tmp && mv $@.tmp $@
44+
./format.sh $@

lang_mods/format.sh

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
#!/usr/bin/env bash
2+
3+
target=$1
4+
5+
# Prettify
6+
jq . "$target" > "$target".tmp && mv "$target".tmp "$target"
7+
8+
if grep -q "$(basename "$target")" LanguageAPIWhitelist.conf; then
9+
sed -i 's|"strings"|"uk"|' "$target"
10+
fi

lang_mods/uk/Arsonist.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
{
2-
"strings": {
2+
"uk": {
33
"POPCORN_ARSONIST_BODY_NAME": "Палій",
44
"POPCORN_ARSONIST_BODY_SUBTITLE": "Маніакальний палій",
55
"POPCORN_ARSONIST_BODY_OUTRO_FLAVOR": "...і він пішов, у жару нової жаги крові.",

lang_mods/uk/RiskOfNoir.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
{
2-
"strings": {
2+
"uk": {
33
"BIGBADPIGEON_SKIN_NOIRMAGE_NAME": "Суперсекретна агентка",
44
"BIGBADPIGEON_SKIN_NOIRBANDIT_NAME": "Бандит... П.Д.",
55
"BIGBADPIGEON_SKIN_NOIRCAPTAIN_NAME": "Хрещений батько",

lang_mods/uk/The_Occultists.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
{
2-
"strings": {
2+
"uk": {
33
"DRAGONROILZ_SKIN_MIRAGESEEKERDEF_NAME": "Посол",
44
"DRAGONROILZ_SKIN_DRIFTERBANDITDEF_NAME": "Вічна ніч",
55
"DRAGONROILZ_SKIN_POCKETACRIDDEF_NAME": "Недуга",
Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,2 @@
11
AncientScepter*
2-
Arsonist*
32
Starstorm2*

plugin/LanguageAPILoader.cs

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
using System.IO;
2+
using R2API;
3+
4+
namespace Risk_of_Rain_2_Ukrainian;
5+
6+
public class LanguageAPILoader
7+
{
8+
public LanguageAPILoader(string folder)
9+
{
10+
if (Directory.Exists(folder))
11+
{
12+
var lines = File.ReadLines(Path.Join(folder, "LanguageAPIWhitelist.conf"));
13+
foreach (var line in lines)
14+
{
15+
if (File.Exists(Path.Join(folder, line)))
16+
{
17+
RiskOfRain2UaPlugin.Log.LogInfo($"Loading {Path.Join(folder, line)} for LanguageAPI.");
18+
LanguageAPI.AddPath(Path.Join(folder, line));
19+
}
20+
else
21+
{
22+
RiskOfRain2UaPlugin.Log.LogWarning($"{Path.Join(folder, line)} is specified in LanguageAPIWhitelist.conf, but does not exist.");
23+
}
24+
}
25+
}
26+
}
27+
}

0 commit comments

Comments
 (0)