Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Разное

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Тема разговора — языки на сайтах.
 
 автор: Vyacheslav Tsv.   (11.01.2010 в 01:22)   письмо автору
 
 

Итак, сегодня хочется поговорить с вами, ребята и девчёнки, о такой замечательной (а может и нет) вещи на сайтах как мультиязычность, а проще говоря — «моя твоя понимать, хоть и с акцентом, хозяин» :о)

Вещь неплохая в целом — ваш сайт отображает своё содержимое почти любому пользователю на его родном языке (особенно, если у вас их много).

Меня интересуют детали — как именно Вы видите такую мультиязычность на своём ресурсе в Интернет, может просто в своём ПО или ещё где...

  Ответить  
 
 автор: sim5   (11.01.2010 в 07:15)   письмо автору
 
   для: Vyacheslav Tsv.   (11.01.2010 в 01:22)
 

Эсперанто

  Ответить  
 
 автор: Саня   (11.01.2010 в 07:39)   письмо автору
 
   для: 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 и куча других.

  Ответить  
 
 автор: Vyacheslav Tsv.   (11.01.2010 в 12:57)   письмо автору
 
   для: Саня   (11.01.2010 в 07:39)
 

Готовые — хорошо, но я вот щас взялся писать свою систему мультиязычности. Не скажу (как минимум пока) для какого сайта в будущем, но смысл заключается в том, что:
1. Есть официальные переводы — те, которые составляются мной (или помощниками).
2. Есть пользовательские переводы — те, которые могут создавать любые пользователи сайта, т.е., иными словами, они могут создать такой перевод на сайте, какой захочется им, даже если в официальных языках такой язык (извините за тавтологию) уже есть.

Как здешняя общественность может оценить такой подход? Плюсы/минусы?

  Ответить  
 
 автор: Саня   (11.01.2010 в 13:35)   письмо автору
 
   для: Vyacheslav Tsv.   (11.01.2010 в 12:57)
 

> 1. Есть официальные переводы
> 2. Есть пользовательские переводы
Не важно чьи переводы. Важно что именно переводится.

> Как здешняя общественность может оценить такой подход? Плюсы/минусы?
Вы не предложили никакой конкретной реализации, поэтому оценивать нечего. То, что я описал выше, является основным методом интернационализации приложений.

  Ответить  
 
 автор: @ndry   (11.01.2010 в 14:45)   письмо автору
 
   для: Саня   (11.01.2010 в 07:39)
 

Забыли учесть надписи на изображениях.

  Ответить  
 
 автор: Commander   (11.02.2010 в 08:19)   письмо автору
 
   для: @ndry   (11.01.2010 в 14:45)
 

>Забыли учесть надписи на изображениях.

У меня так: все изображения храняться в папке "../~templates/images", те которые имеют надписи - в "../~templates/images/russian"...

  Ответить  
 
 автор: coloboc66   (11.01.2010 в 16:02)   письмо автору
 
   для: Саня   (11.01.2010 в 07:39)
 

Gettext, Tbx, Tmx, Xliff, XmlTm и куча других. - не понял, для чего это?

  Ответить  
 
 автор: Саня   (11.01.2010 в 16:19)   письмо автору
 
   для: coloboc66   (11.01.2010 в 16:02)
 

Для быстрого и удобного перевода фраз на разные языки. Переводы готовятся вручную и хранятся в одном из перечисленных форматов. Готовых инструментов для работы с этими форматами предостаточно.

  Ответить  
 
 автор: coloboc66   (11.01.2010 в 16:25)   письмо автору
 
   для: Саня   (11.01.2010 в 16:19)
 

Всё-равно не понимаю: если перевод готовится вручную, то для чего упомянутые инструменты? Для хранения? Но хранить перевод можно в чём угодно - от переменных до БД....

  Ответить  
 
 автор: Саня   (11.01.2010 в 16:37)   письмо автору
 
   для: coloboc66   (11.01.2010 в 16:25)
 

Всё верно. Но чтобы переводы хранить где-либо, нужно сначала договориться о формате хзранения. Чем популярнее формат, тем больше для него написано инструментов взаимодействия с ним. Я перечислил наиболее популярные форматы. Как видно из названия, некоторые форматы основына на другом формате — XML.

  Ответить  
 
 автор: coloboc66   (11.01.2010 в 16:43)   письмо автору
 
   для: Саня   (11.01.2010 в 16:37)
 

нужно сначала договориться о формате хранения. - с кем нужно договариваться и зачем?
Чем удобней может быть какой-нибудь Gettext того, что я вручную засуну перевод в тот же XML или MySQL ?
Не врубаюсь я чего-то...:(

  Ответить  
 
 автор: Саня   (11.01.2010 в 17:24)   письмо автору
 
   для: coloboc66   (11.01.2010 в 16:43)
 

> с кем нужно договариваться?
А с кем договаривались создатели HTML, CSS, RTF, PDF?

> и зачем?
Ради стандартизации.

> Чем удобней может быть какой-нибудь Gettext того,
> что я вручную засуну перевод в тот же XML или MySQL?
Тем, что это стандарт. А в чём преимущество стандартов?
Многие считают задачу интернационализации приложения чем-то банальным и придумывают всё своё.

XML бывает разным — MathML, SVG, SOAP, и многие другие. Гораздо выгоднее взять готовый движок рендера MathML формул, чем писать свой формат их хранения и отрисовки.

  Ответить  
 
 автор: Vyacheslav Tsv.   (12.01.2010 в 00:06)   письмо автору
 
   для: Саня   (11.01.2010 в 17:24)
 

Ребят, чес слово. Эти стандарты — наиграны теми, кто их придумал. И сравнивать с HTML и подобными — ахахахаха — только смех вызывает. Не злобный конечно )))

  Ответить  
 
 автор: @ndry   (12.01.2010 в 00:10)   письмо автору
 
   для: Vyacheslav Tsv.   (12.01.2010 в 00:06)
 

Так или иначе нам бы было проще если бы для всего был толковый стандарт, единый =)

  Ответить  
 
 автор: Vyacheslav Tsv.   (12.01.2010 в 00:56)   письмо автору
 
   для: @ndry   (12.01.2010 в 00:10)
 

А где свобода творчества? Или вы думаете раз программисты так железные? Я вот вообще на менеджера учусь и увлекаюсь дизайном, и считаю, что в программировании тоже должна быть фантазия... просто своя, особенная...

  Ответить  
 
 автор: @ndry   (12.01.2010 в 01:04)   письмо автору
 
   для: Vyacheslav Tsv.   (12.01.2010 в 00:56)
 

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

  Ответить  
 
 автор: heed   (12.01.2010 в 00:59)   письмо автору
 
   для: @ndry   (12.01.2010 в 00:10)
 

XML тоже как-то неочень , много лишних букв

например
http://svn.php.net/repository/phpdoc/ru/trunk/reference/ctype/functions/

  Ответить  
 
 автор: @ndry   (12.01.2010 в 01:03)   письмо автору
 
   для: heed   (12.01.2010 в 00:59)
 

^ явное не понимание применения XML как инструмента, почитайте об этом.

он не может быть "не очень" тк для вас там "много лишних букв", он содержит ту информацию, которая необходима.

  Ответить  
 
 автор: Саня   (12.01.2010 в 12:34)   письмо автору
 
   для: heed   (12.01.2010 в 00:59)
 

XML избыточен в угоду читабельности человеком. Это "проблема" всех языков, наследуемых от SGML.

  Ответить  
 
 автор: @ndry   (13.01.2010 в 13:09)   письмо автору
 
   для: Саня   (12.01.2010 в 12:34)
 

1. Никто не заставляет вас его использовать
2. Есть более продвинутые модификации, которые вы не прочтёте, но они не ущербны в читабельности

  Ответить  
 
 автор: Саня   (13.01.2010 в 13:19)   письмо автору
 
   для: @ndry   (13.01.2010 в 13:09)
 

Спасибо, кэп. Я в курсе.

  Ответить  
 
 автор: Саня   (12.01.2010 в 12:19)   письмо автору
 
   для: Vyacheslav Tsv.   (12.01.2010 в 00:06)
 

Просрали как-то момент со стандартом и теперь приходится тратить много лишнего времени на то, чтобы верстка одинаково выглядела в разных браузерах... хотя вы, наверное, посмеётесь и скажете что в этом много творческого...
А вот я не посмеюсь, так как для меня время — деньги.

  Ответить  
 
 автор: Vyacheslav Tsv.   (12.01.2010 в 00:07)   письмо автору
 
   для: coloboc66   (11.01.2010 в 16:43)
 

coloboc66, поддерживаю!

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования