Перейти к содержимому


Фотография

Использование символа "%" в файлах перевода (.phrases)


  • Авторизуйтесь для ответа в теме
Сообщений в теме: 10

#1 8rutu5

8rutu5

    Пользователь

  • Пользователь
  • PipPipPip
  • 397 сообщений

Отправлено 03 Май 2020 - 14:11

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

Например:

"Test_phrase"

{

    "ru" "Ваше здоровье: %i%%"

}

 

В конечном счете, открывая меню и читая эту фразу знака % после числа нет. Подскажите, это как-то решается или нужно по-другому форматировать?

 

Спасибо!



#2 Kakoin

Kakoin

    Постоянный пользователь

  • Пользователь
  • PipPipPipPipPip
  • 8 969 сообщений

Отправлено 03 Май 2020 - 14:27

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

Например:

"Test_phrase"

{

    "ru" "Ваше здоровье: %i%%"

}

 

В конечном счете, открывая меню и читая эту фразу знака % после числа нет. Подскажите, это как-то решается или нужно по-другому форматировать?

 

Спасибо!

"Test_phrase"
{
   "#format"	"{1:i}"
   "ru" "Ваше здоровье: {1}"
}


#3 8rutu5

8rutu5

    Пользователь

  • Пользователь
  • PipPipPip
  • 397 сообщений

Отправлено 04 Май 2020 - 13:09

"Test_phrase"
{
   "#format"	"{1:i}"
   "ru" "Ваше здоровье: {1}"
}

А я так и не понял за счет чего тут проценты-то будут отображаться? У меня к примеру есть строки и без переменных, а просто с текстом и где используется символ %, но он там все-равно не отображается



#4 Kakoin

Kakoin

    Постоянный пользователь

  • Пользователь
  • PipPipPipPipPip
  • 8 969 сообщений

Отправлено 04 Май 2020 - 14:02

А я так и не понял за счет чего тут проценты-то будут отображаться? У меня к примеру есть строки и без переменных, а просто с текстом и где используется символ %, но он там все-равно не отображается

public void какая то функция получения здоровья()
{
	int hp = получаем hp;
	
	PrintToChat(client, "%t", "Test_phrase", hp);
}

Вот так понятней ?


Или нужно именно целое число перевести в процент ?



#5 8rutu5

8rutu5

    Пользователь

  • Пользователь
  • PipPipPip
  • 397 сообщений

Отправлено 04 Май 2020 - 14:06

public void какая то функция получения здоровья()
{
	int hp = получаем hp;
	
	PrintToChat(client, "%t", "Test_phrase", hp);
}

Вот так понятней ?


Или нужно именно целое число перевести в процент ?

 

 

Может мы друг друга че-то не понимаем. Мне всего лишь надо, чтобы, грубо говоря, писалось "Ваше здоровье: 100%". На данный момент у меня пишется "Ваше здоровье: 100" и все. Символа % нет. Форматирование через #format в файле перевода попробовал - не помогло.



#6 Kakoin

Kakoin

    Постоянный пользователь

  • Пользователь
  • PipPipPipPipPip
  • 8 969 сообщений

Отправлено 04 Май 2020 - 14:09

Может мы друг друга че-то не понимаем. Мне всего лишь надо, чтобы, грубо говоря, писалось "Ваше здоровье: 100%". На данный момент у меня пишется "Ваше здоровье: 100" и все. Символа % нет. Форматирование через #format в файле перевода попробовал - не помогло.

 

"Test_phrase"
{
   "#format"	"{1:i}"
   "ru" "Ваше здоровье: {1}%"
}


#7 8rutu5

8rutu5

    Пользователь

  • Пользователь
  • PipPipPip
  • 397 сообщений

Отправлено 04 Май 2020 - 14:15

"Test_phrase"
{
"#format"    "{1:i}"
"ru" "Ваше здоровье: {1}%"
}

Пробовал. Не работает



#8 Kakoin

Kakoin

    Постоянный пользователь

  • Пользователь
  • PipPipPipPipPip
  • 8 969 сообщений

Отправлено 04 Май 2020 - 14:25

Пробовал. Не работает

Может на символ % буфера не хватает? По идеи должно показывать именно так как надо. 



#9 BHaType

BHaType

    Пользователь

  • Пользователь
  • PipPipPip
  • 358 сообщений

Отправлено 04 Май 2020 - 14:39

Попробуй сразу %i%%%% прописать, я помню такая же проблема была, вроде именно так и исправил.



#10 8rutu5

8rutu5

    Пользователь

  • Пользователь
  • PipPipPip
  • 397 сообщений

Отправлено 04 Май 2020 - 14:42

Может на символ % буфера не хватает? По идеи должно показывать именно так как надо. 

Дак оно нигде не показывает. При чем, самое интересное, что если просто использовать статическую строку (без файла перевода), например, через цветной чат CPrintToChat(client, "Ваше здоровье: %i%% HP", hp), то все нормально работает. Но стоит это все ввести в файл переводов, и проценты сразу перестают работать. Либо там форматирование какое-то особенное, либо как-то по-другому эти проценты вставляются.


Попробуй сразу %i%%%% прописать, я помню такая же проблема была, вроде именно так и исправил.

Спасибо, помогло. Правда, конечно, это больше похоже на раздолбанный старый инвалидный костыль, чем на полноценное решение проблемы. Но, хотя бы, что-то. Работает и ладно.  :D


Сообщение отредактировал 8rutu5: 04 Май 2020 - 14:40

  • BHaType это нравится

#11 dragokas

dragokas

    Постоянный пользователь

  • Пользователь
  • PipPipPipPipPip
  • 792 сообщений

Отправлено 08 Май 2020 - 11:14

Возможно сработает \%




Количество пользователей, читающих эту тему: 0

0 пользователей, 0 гостей, 0 анонимных