В настоящий момент ваша попытка не очень помогает достичь желаемого результата, так как вы разбиваете пробел .split(" ")
, но в вашей строке нет пробелов, и, таким образом, это не дает многого. [1112 ]
Вместо этого вы можете использовать регулярное выражение , чтобы разбить вашу текущую строку. Используя регулярное выражение, вы можете более точно контролировать, как разбивается ваша строка. Ниже я использовал:
/(\w+[:;])/
Здесь я делю строку на символы слова (подряд) (\w+
), за которыми следует точка с запятой (;
) или двоеточие (:
).
Это, однако, вернет одномерный массив с дополнительными ""
(пустыми) строками внутри него. Таким образом, я также использовал .reduce
, чтобы удалить ваши пустые строки и поместить каждое значение разбиения в свой собственный массив, что дает вам ваш результат.
См. Рабочий пример ниже:
const str = "Fred:Corwill;Wilfred:Corwill;Barney:Tornbull;Betty:Tornbull;Bjon:Tornbull;Raphael:Corwill;Alfred:Corwill",
res = str.split(/(\w+[:;])/).reduce((acc, wrd) => wrd ? [...acc, [wrd]] : acc, []);
console.log(res);
Я попробовал это с игрой KDE Kolf, и
(export LANG=de_DE.UTF-8; kolf)
(export LANG=en_US.UTF-8; kolf)
помог мне переключить его на немецкий или английский.
Я также проверил это с помощью приложения QT qtparted
(export LANG=de_DE.UTF-8; qtparted)
на моем английском рабочем столе появляется на немецком языке. Очевидно, мне пришлось установить файлы на немецком языке, чтобы переведенное приложение заработало.
Хорошо, это долгая история, но оказывается, что переводы на самом деле не работают, и в этом вся основная проблема. Очевидная вещь, которую я попробовал сначала, работает нормально. Поскольку это не KDE, я просто использовал plain:
LANG=de ./my_app
Теперь, когда я исправил ошибку в отладочном коде (о, как ни странно), я ясно вижу, что файлы перевода (которые существуют) не получают загружен. Ах. Ну хорошо тогда. Продолжать. Здесь не на что смотреть.