Автор Тема: Проблем при превод на php framework  (Прочетена 3175 пъти)

koleto

  • Напреднали
  • *****
  • Публикации: 52
  • Distribution: Ubuntu
  • Window Manager: Gnome
    • Профил
    • WWW
Здравейте. Започнах да превеждам езиковите файлове на един страхотен php framework - Yii. Това са файлове, който се генерира от компонента yiic message, в които се съдържат събрани низове от сорс кода с цел превод и локализация.

Проблема е че стигнах до следната дилема - имаме съобщението '{attribute} is invalid.', което трябва да бъде преведено. На английски казваме username is invalid или password is invalid, но на български казваме потребителското име е невалидНО, паролата е невалидНА, email-a е невалидЕН. Различното окончание създава проблем текста да се преведе с едно изречение. Как ще стане по добре, да напиша някакъв клас специално за български или да направя следното - 'полето {attribute} е невалидно'. Така ще стане 'полето потребителско име е невалидно', 'полето парола е недалидно' и т.н. Проблема не съществува само при тази сигуация, а и при:
Код
GeSHi (PHP):
  1.  '{attribute} must be repeated exactly.'

Тук ми се струва много тъпо да кажем 'Полето {attribute} трябва да бъде повторено точно'. Ама мнооого тъпо. Та клас ли да пиша или как според вас ще стане най-добре?
Активен

Поражение не съществува, докато човек не се признае за победен!

tyuio

  • Гост
Re: Проблем при превод на php framework
« Отговор #1 -: Jul 24, 2009, 10:14 »
че в какъв файл се съдържа превода че да ползваш класове? Не са ли просто променливи ?
Активен

neter

  • Global Moderator
  • Напреднали
  • *****
  • Публикации: 3408
  • Distribution: Debian, SailfishOS, CentOS
  • Window Manager: LXDE, Lipstick
    • Профил
    • WWW
Re: Проблем при превод на php framework
« Отговор #2 -: Jul 24, 2009, 10:16 »
Винаги е за предпочитане да не променяш кода на софтуера, който превеждаш, тъй като разлики в кода на софтуера при различните преводи могат да доведат само до главоболия и неочаквани резултати. Стринговете в превода трябва да отговарят на броя (и горе-долу на дължината) на стринговете в основния език на софтуера (който, в случая, е английският). По-късно ще разгледам самия framework, за да видя как точно стоят нещата, но ето ти едни предложения за превод:
Цитат
{attribute} is invalid.
Грешка в {attribute}.
Цитат
{attribute} must be repeated exactly.
Моля, повторете {attribute} точно!
Активен

"Да си добре приспособен към болно общество не е признак за добро здраве" - Джиду Кришнамурти

koleto

  • Напреднали
  • *****
  • Публикации: 52
  • Distribution: Ubuntu
  • Window Manager: Gnome
    • Профил
    • WWW
Re: Проблем при превод на php framework
« Отговор #3 -: Jul 24, 2009, 13:12 »
Като казах да напиша клас, имах предвид да направя производен клас на класа, който отговаря за съобщенията, който да бъде с допълнителни методи за българския език и той да поеме функциите на основния. Не е много трудно. А самия файла изглежда ето така:

Код
GeSHi (PHP):
  1. return array (
  2.  '"{path}" is not a valid directory.' => '"{path}" не е валидна директория',
  3.  '< Previous' => '< Предишно',
  4.  '<< First' => '<< Първо',
  5.  .....
  6.  .....
  7.  '{attribute} must be a number.' => '{attribute} трябва да е число',
  8.  '{attribute} must be an integer.' => '{attribute} трябва да бъде цяло число',
  9.  '{attribute} must be repeated exactly.' => '',
  10.  '{attribute} must be {type}.' => '{attribute} трябва да бъде от тип {type}',
  11.  ....
  12.  ....
  13. );
  14.  

Начина, който предложи neter наистина ми допада. Мерси много за идеята.
Активен

Поражение не съществува, докато човек не се признае за победен!