|
|
|
| Итак, сегодня хочется поговорить с вами, ребята и девчёнки, о такой замечательной (а может и нет) вещи на сайтах как мультиязычность, а проще говоря — «моя твоя понимать, хоть и с акцентом, хозяин» :о)
Вещь неплохая в целом — ваш сайт отображает своё содержимое почти любому пользователю на его родном языке (особенно, если у вас их много).
Меня интересуют детали — как именно Вы видите такую мультиязычность на своём ресурсе в Интернет, может просто в своём ПО или ещё где... | |
|
|
|
|
|
|
|
для: Vyacheslav Tsv.
(11.01.2010 в 01:22)
| | Эсперанто | |
|
|
|
|
|
|
|
для: Vyacheslav Tsv.
(11.01.2010 в 01:22)
| | Всё очень просто. Для статических текстов составляется словарь:
lang_ru.php
$array['MESSAGE1'] = 'Добро пожаловать';
$array['MESSAGE2'] = 'статьи';
$array['MESSAGE3'] = 'контакты';
...
lang_en.php
$array['MESSAGE1'] = 'Welcome';
$array['MESSAGE2'] = 'articles';
$array['MESSAGE3'] = 'contacts';
...
lang_xx.php
...
|
Динамические тексты (статьи, новости, и пр) должны вручную забиваться для каждого языка. Соответственно в админке должны быть поля ввода для статьи на разных языках.
В шаблоне пишется:
<?php
include_once('lang_'.detectLang().'.php');
?>
<html>
<head>
.......
</head>
<body>
<h1><?=$array['MESSAGE1']?></h1>
<a href="articles"><?=$array['MESSAGE2']?></a><br>
<a href="contacts"><?=$array['MESSAGE3']?></a><br>
<?
$q = mysql_fetch_assoc(mysql_query('SELECT * FROM `articles` WHERE `name`="'.$_GET['name'].'" AND `lang`="'.detectLang().'"'));
print '<p>'.$q['body'].'</p>';
?>
</body>
</html>
|
Реализация динамических текстов полностью ложится на программиста, а вот для статических придумано множество инструментов: Gettext, Tbx, Tmx, Xliff, XmlTm и куча других. | |
|
|
|
|
|
|
|
для: Саня
(11.01.2010 в 07:39)
| | Готовые — хорошо, но я вот щас взялся писать свою систему мультиязычности. Не скажу (как минимум пока) для какого сайта в будущем, но смысл заключается в том, что:
1. Есть официальные переводы — те, которые составляются мной (или помощниками).
2. Есть пользовательские переводы — те, которые могут создавать любые пользователи сайта, т.е., иными словами, они могут создать такой перевод на сайте, какой захочется им, даже если в официальных языках такой язык (извините за тавтологию) уже есть.
Как здешняя общественность может оценить такой подход? Плюсы/минусы? | |
|
|
|
|
|
|
|
для: Vyacheslav Tsv.
(11.01.2010 в 12:57)
| | > 1. Есть официальные переводы
> 2. Есть пользовательские переводы
Не важно чьи переводы. Важно что именно переводится.
> Как здешняя общественность может оценить такой подход? Плюсы/минусы?
Вы не предложили никакой конкретной реализации, поэтому оценивать нечего. То, что я описал выше, является основным методом интернационализации приложений. | |
|
|
|
|
|
|
|
для: Саня
(11.01.2010 в 07:39)
| | Забыли учесть надписи на изображениях. | |
|
|
|
|
|
|
|
для: @ndry
(11.01.2010 в 14:45)
| | >Забыли учесть надписи на изображениях.
У меня так: все изображения храняться в папке "../~templates/images", те которые имеют надписи - в "../~templates/images/russian"... | |
|
|
|
|
|
|
|
для: Саня
(11.01.2010 в 07:39)
| | Gettext, Tbx, Tmx, Xliff, XmlTm и куча других. - не понял, для чего это? | |
|
|
|
|
|
|
|
для: coloboc66
(11.01.2010 в 16:02)
| | Для быстрого и удобного перевода фраз на разные языки. Переводы готовятся вручную и хранятся в одном из перечисленных форматов. Готовых инструментов для работы с этими форматами предостаточно. | |
|
|
|
|
|
|
|
для: Саня
(11.01.2010 в 16:19)
| | Всё-равно не понимаю: если перевод готовится вручную, то для чего упомянутые инструменты? Для хранения? Но хранить перевод можно в чём угодно - от переменных до БД.... | |
|
|
|
|
|
|
|
для: coloboc66
(11.01.2010 в 16:25)
| | Всё верно. Но чтобы переводы хранить где-либо, нужно сначала договориться о формате хзранения. Чем популярнее формат, тем больше для него написано инструментов взаимодействия с ним. Я перечислил наиболее популярные форматы. Как видно из названия, некоторые форматы основына на другом формате — XML. | |
|
|
|
|
|
|
|
для: Саня
(11.01.2010 в 16:37)
| | нужно сначала договориться о формате хранения. - с кем нужно договариваться и зачем?
Чем удобней может быть какой-нибудь Gettext того, что я вручную засуну перевод в тот же XML или MySQL ?
Не врубаюсь я чего-то...:( | |
|
|
|
|
|
|
|
для: coloboc66
(11.01.2010 в 16:43)
| | > с кем нужно договариваться?
А с кем договаривались создатели HTML, CSS, RTF, PDF?
> и зачем?
Ради стандартизации.
> Чем удобней может быть какой-нибудь Gettext того,
> что я вручную засуну перевод в тот же XML или MySQL?
Тем, что это стандарт. А в чём преимущество стандартов?
Многие считают задачу интернационализации приложения чем-то банальным и придумывают всё своё.
XML бывает разным — MathML, SVG, SOAP, и многие другие. Гораздо выгоднее взять готовый движок рендера MathML формул, чем писать свой формат их хранения и отрисовки. | |
|
|
|
|
|
|
|
для: Саня
(11.01.2010 в 17:24)
| | Ребят, чес слово. Эти стандарты — наиграны теми, кто их придумал. И сравнивать с HTML и подобными — ахахахаха — только смех вызывает. Не злобный конечно ))) | |
|
|
|
|
|
|
|
для: Vyacheslav Tsv.
(12.01.2010 в 00:06)
| | Так или иначе нам бы было проще если бы для всего был толковый стандарт, единый =) | |
|
|
|
|
|
|
|
для: @ndry
(12.01.2010 в 00:10)
| | А где свобода творчества? Или вы думаете раз программисты так железные? Я вот вообще на менеджера учусь и увлекаюсь дизайном, и считаю, что в программировании тоже должна быть фантазия... просто своя, особенная... | |
|
|
|
|
|
|
|
для: Vyacheslav Tsv.
(12.01.2010 в 00:56)
| | Одно другого не исключает, я тоже программист и работать зная стандарт намного проще, он существует для взаимодействия приложений и людей, и не исключает творческих подходов к конкретным реализациям. | |
|
|
|
|
|
|
|
для: @ndry
(12.01.2010 в 00:10)
| | XML тоже как-то неочень , много лишних букв
например
http://svn.php.net/repository/phpdoc/ru/trunk/reference/ctype/functions/ | |
|
|
|
|
|
|
|
для: heed
(12.01.2010 в 00:59)
| | ^ явное не понимание применения XML как инструмента, почитайте об этом.
он не может быть "не очень" тк для вас там "много лишних букв", он содержит ту информацию, которая необходима. | |
|
|
|
|
|
|
|
для: heed
(12.01.2010 в 00:59)
| | XML избыточен в угоду читабельности человеком. Это "проблема" всех языков, наследуемых от SGML. | |
|
|
|
|
|
|
|
для: Саня
(12.01.2010 в 12:34)
| | 1. Никто не заставляет вас его использовать
2. Есть более продвинутые модификации, которые вы не прочтёте, но они не ущербны в читабельности | |
|
|
|
|
|
|
|
для: @ndry
(13.01.2010 в 13:09)
| | Спасибо, кэп. Я в курсе. | |
|
|
|
|
|
|
|
для: Vyacheslav Tsv.
(12.01.2010 в 00:06)
| | Просрали как-то момент со стандартом и теперь приходится тратить много лишнего времени на то, чтобы верстка одинаково выглядела в разных браузерах... хотя вы, наверное, посмеётесь и скажете что в этом много творческого...
А вот я не посмеюсь, так как для меня время — деньги. | |
|
|
|
|
|
|
|
для: coloboc66
(11.01.2010 в 16:43)
| | coloboc66, поддерживаю! | |
|
|
|