Ошибка в поиске перевода

Nico Yazawa

Бывший MrChester =(
Сообщения
326
Реакции
303
Вот и снова я со своими вопросами.
Недавно добавил в плагин переводы, по данному уроку.
Изначально все было хорошо, но не тут - то было. Через неделю как я просто оставил все как было и вернулся к плагину, стали происходить паранормальные вещи:
C-подобный:
L 08/22/2019 - 11:54:16: [SM] Exception reported: Language phrase "PlayerTakeCoins" not found (arg 4)
L 08/22/2019 - 11:54:16: [SM] Blaming: Trade_System.smx
L 08/22/2019 - 11:54:16: [SM] Call stack trace:
L 08/22/2019 - 11:54:16: [SM]   [0] VFormat
L 08/22/2019 - 11:54:16: [SM]   [1] Line 25, D:\Files\Server\server_csgo\csgo\addons\sourcemod\scripting\include\csgo_colors.inc::CGOPrintToChat
L 08/22/2019 - 11:54:16: [SM]   [2] Line 998, D:\Files\Server\server_csgo\csgo\addons\sourcemod\scripting\Trade_System.sp::GiveCoinsPlayer
L 08/22/2019 - 11:54:16: [SM]   [3] Line 338, D:\Files\Server\server_csgo\csgo\addons\sourcemod\scripting\Trade_System.sp::Event_PlayerDeath
Тем не менее в файле перевода есть данный пункт:
C-подобный:
"PlayerTakeCoins"
    {
        "#format"    "{1:i},{2:s},{3:s}"
        "ru"        "[ {LIGHTGREEN}!TRADE {DEFAULT}] Вы получили {LIGHTGREEN}{1} К{2} {DEFAULT}за {LIGHTGREEN}{3}"
    }
А пока эта не работает, некоторые другие работают...
Помогите пожалуйста)

P.S. К файлу перевода я подключался как надо, если нужен код, то скажите какая часть, а то там на 1000 строк
 

Kruzya

Участник
Сообщения
12,970
Реакции
10,924
  • Команда форума
  • #2
Объяснялось уже неоднократно.
Если язык игрока не объявлен во фразах, или язык попросту неизвестен, SM всегда в первую очередь пытается искать фразу на стандартном языке. Стандартный язык прописан в /addons/sourcemod/configs/core.cfg, и по умолчанию там Английский.

Вдобавок, CS:GO имеет некоторые проблемы с передачей языка игрока на сервер, потому некоторое время после подключения игрока, SourceMod может использовать стандартную (английскую) локализацию.
Английской фразы нет, а оно ещё не определило, что у игрока - русский. Вот и ошибка.
 

Nico Yazawa

Бывший MrChester =(
Сообщения
326
Реакции
303
Объяснялось уже неоднократно.
Если язык игрока не объявлен во фразах, или язык попросту неизвестен, SM всегда в первую очередь пытается искать фразу на стандартном языке. Стандартный язык прописан в /addons/sourcemod/configs/core.cfg, и по умолчанию там Английский.

Вдобавок, CS:GO имеет некоторые проблемы с передачей языка игрока на сервер, потому некоторое время после подключения игрока, SourceMod может использовать стандартную (английскую) локализацию.
Английской фразы нет, а оно ещё не определило, что у игрока - русский. Вот и ошибка.

Спасибо за ответ, стандартный язык я изменил, но ошибка остается. Попробовал добавить строчку с "en" и также не находил, выдавая ошибку в консоль.
Некоторые фразы работают, некоторые - нет. Причем тот же плагин VIP иногда мне пишет на английском, что очень странно
 
Последнее редактирование:

Kruzya

Участник
Сообщения
12,970
Реакции
10,924
  • Команда форума
  • #4
стандартный язык я изменил, но ошибка остается
Сервер перезагружали-то?

Причем тот же плагин VIP иногда мне пишет на английском
В таком случае, явно не перезагружали:
CS:GO имеет некоторые проблемы с передачей языка игрока на сервер, потому некоторое время после подключения игрока, SourceMod может использовать стандартную (английскую) локализацию
 

Grey83

не пишу плагины с весны 2022
Сообщения
8,569
Реакции
5,071
Когда же вы запомните, что основной файл перевода (который в папке по пути "...\addons\sourcemod\translations\") должен обязательно содержать английский перевод (тег "en"), даже если там текст на русском?!
И "#format" должен быть в файле содержащем этот самый перевод. А остальные локализации могут быть где угодно: хоть в том же файле, хоть в папке соответствующего языка.
 

Nico Yazawa

Бывший MrChester =(
Сообщения
326
Реакции
303
Сервер перезагружали-то?


В таком случае, явно не перезагружали:
Перезагружал и не один раз, просто на любом сервере может быть такое, что на английском плагин.
Сообщения автоматически склеены:

Когда же вы запомните, что основной файл перевода (который в папке по пути "...\addons\sourcemod\translations\") должен обязательно содержать английский перевод (тег "en"), даже если там текст на русском?!
И "#format" должен быть в файле содержащем этот самый перевод. А остальные локализации могут быть где угодно: хоть в том же файле, хоть в папке соответствующего языка.
Спасибо за информацию, но факт того что раньше работало и даже с добавлением тега en не работает (ошибку дает)
 

Grey83

не пишу плагины с весны 2022
Сообщения
8,569
Реакции
5,071
раньше работало и даже с добавлением тега en не работает (ошибку дает)
Имя txt-файла локализации совпадает с именем указанным в плагине (в функции LoadTranslations()) и лежит непосредственно в ...\addons\sourcemod\translations\, в самом файле ниже "#format" имеется перевод с ключём "en" и перед использованием перезапускался сервер или же перезагружались переводы командой sm_reload_translations?

Кстати, что с тех пор изменилось? SM на сервере обновился?
 

Nico Yazawa

Бывший MrChester =(
Сообщения
326
Реакции
303
Имя txt-файла локализации совпадает с именем указанным в плагине (в функции LoadTranslations()) и лежит непосредственно в ...\addons\sourcemod\translations\, в самом файле ниже "#format" имеется перевод с ключём "en" и перед использованием перезапускался сервер или же перезагружались переводы командой sm_reload_translations?

Кстати, что с тех пор изменилось? SM на сервере обновился?
Файл закинут в следующую директорию: Server\server_csgo\csgo\addons\sourcemod\translations\trade.phrases.txt
Часть кода: LoadTranslation("trade.phrases"); (Очень странные вещи происходят когда я пытаюсь скопировать данную строку из кода, вот это копируется: MS5qUuf6Dnk5ubGFfeNKvnWfNV2i9Ymio1)
Каждая попытка удовлетворить SourceMod, я полностью выключал и включал локальный сервер.
Сообщения автоматически склеены:

О, что нашел при sm_reload_translations:
C-подобный:
L 08/22/2019 - 18:23:42: [SM] Fatal error encountered parsing translation file "trade.phrases.txt"
L 08/22/2019 - 18:23:42: [SM] Error (line 171, column 31): Line contained too many invalid tokens
L 08/22/2019 - 18:23:42: [SM] Fatal error encountered parsing translation file "vip_modules.phrases.txt"
L 08/22/2019 - 18:23:42: [SM] Error (line 0, column 0): Stream failed to open
Сообщения автоматически склеены:

В самом переводе:
C-подобный:
"InfoCoins"
    {
        "#format"    "{1:i},{2:i},{3:i},{4:i},{5:i}"
        "ru"           "Вы делаете убийства и получаете за это {LIGHTGREEN}коины,{DEFAULT}\n\
                    которые потом можно будет обменять на баланс в Вашем {LIGHTGREEN}личном кабинете {DEFAULT}на сайте {LIGHTGREEN}BoneBlood.ru\n\
                    {DEFAULT}Обменять валюту можно только тогда, когда Вы наберёте {LIGHTGREEN}{1} К{DEFAULT}, что равняется одному рублю на сайте\n\
                    Убийство в тело => {LIGHTGREEN}{2} К\n\
                    Убийство в голову => {LIGHTGREEN}{3} К\n\
                    Заклад бомбы => {LIGHTGREEN}{4} К\n\
                    MVP (лучший игрок) => {LIGHTGREEN}{5} К"
                    
        "en"           "Вы делаете убийства и получаете за это {LIGHTGREEN}коины,{DEFAULT}\n\
                    которые потом можно будет обменять на баланс в Вашем {LIGHTGREEN}личном кабинете {DEFAULT}на сайте {LIGHTGREEN}BoneBlood.ru\n\
                    {DEFAULT}Обменять валюту можно только тогда, когда Вы наберёте {LIGHTGREEN}{1} К{DEFAULT}, что равняется одному рублю на сайте\n\
                    Убийство в тело => {LIGHTGREEN}{2} К\n\
                    Убийство в голову => {LIGHTGREEN}{3} К\n\
                    Заклад бомбы => {LIGHTGREEN}{4} К\n\
                    MVP (лучший игрок) => {LIGHTGREEN}{5} К"
    }
 

Kruzya

Участник
Сообщения
12,970
Реакции
10,924
  • Команда форума
  • #9
А с чего Вы решили, что Вы можете здесь делать настоящие переносы строк? \n в фразе - ради Бога, а перенос именно - нельзя.
 

Grey83

не пишу плагины с весны 2022
Сообщения
8,569
Реакции
5,071
хм, и такой длинный текст реально выводится и не обрезается игрой?
 

Kruzya

Участник
Сообщения
12,970
Реакции
10,924
  • Команда форума
  • #12
@Grey83, дык ксго же. Там CS:GO Colors сам формирует несколько PrintToChat() вызовов на основе кол-ва \n в тексте.
 

Grey83

не пишу плагины с весны 2022
Сообщения
8,569
Реакции
5,071
Крузяра, глянул инклюд: действительно разбивает текст на несколько сообщений
 
Сверху Снизу