Linux за българи: Форуми

Преводи => Преводи на програми => Темата е започната от: koleto в Jul 24, 2009, 00:40



Титла: Проблем при превод на php framework
Публикувано от: koleto в Jul 24, 2009, 00:40
Здравейте. Започнах да превеждам езиковите файлове на един страхотен 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} трябва да бъде повторено точно'. Ама мнооого тъпо. Та клас ли да пиша или как според вас ще стане най-добре?


Титла: Re: Проблем при превод на php framework
Публикувано от: tyuio в Jul 24, 2009, 10:14
че в какъв файл се съдържа превода че да ползваш класове? Не са ли просто променливи ?


Титла: Re: Проблем при превод на php framework
Публикувано от: neter в Jul 24, 2009, 10:16
Винаги е за предпочитане да не променяш кода на софтуера, който превеждаш, тъй като разлики в кода на софтуера при различните преводи могат да доведат само до главоболия и неочаквани резултати. Стринговете в превода трябва да отговарят на броя (и горе-долу на дължината) на стринговете в основния език на софтуера (който, в случая, е английският). По-късно ще разгледам самия framework, за да видя как точно стоят нещата, но ето ти едни предложения за превод:
Цитат
{attribute} is invalid.
Грешка в {attribute}.
Цитат
{attribute} must be repeated exactly.
Моля, повторете {attribute} точно!


Титла: Re: Проблем при превод на php framework
Публикувано от: koleto в 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 наистина ми допада. Мерси много за идеята.