Есть ли какие-либо общие альтернативы локализации/перевода gettext?
Открытый исходный код или собственный не имеет значения.
Когда я говорю, что альтернатива gettext, имею в виду библиотеку для интернационализации со своего рода бэкендом локализации.
Причина, которую я спрашиваю, состоит в том, потому что (среди прочего) я нахожу, что путь gettext делает вещи, немного громоздкие и статичные, главным образом в бите бэкенда.
Теоретически чистые функциональные языки должны иметь такую возможность, но до сих пор я слышал только об Эрланге.
-121--4321052-Для этого можно использовать класс Raw _ Sql . Вот тест, который я только что сделал в своей собственной базе данных:
<?php
set_include_path(get_include_path() . PATH_SEPARATOR . 'library');
require('Doctrine.php');
spl_autoload_register(array('Doctrine', 'autoload'));
Doctrine::loadModels('application/models/generated');
Doctrine::loadModels('application/models');
$dm=Doctrine_Manager::getInstance();
$conn = $dm->openConnection("mysql://dbuser:dbpass@localhost/database"); //changed actual values...
$q = new Doctrine_RawSql($conn);
$q->select('{c.name}')
->distinct()
->from('contactlist c')
->addComponent('c', 'Contactlist');
//this outputs: SELECT DISTINCT c.name AS c__name FROM contactlist c
echo $q->getSqlQuery() . "<br>\n";
$contacts = $q->execute();
foreach($contacts->toArray() as $contact){
echo $contact['name'] . "<br>\n";
}
?>
-121--2910316- Прежде всего я думаю, что получить текст
является одним из лучших на данный момент.
Вы можете взглянуть на Boost.Locale
, который может обеспечить лучший API и использовать модель словаря gettext
: http://cppcms.sourceforge.net/boost_locale/docs/ (не является официальной частью Boost, все еще бета-версия).
Изменить:
Если не нравится получить текст
...
Это технологии перевода:
Теперь:
gettext
. Неплохое решение, но ограничено Qt. Не так полезен в универсальных программах. Что у нас теперь?
GNU gettext
, широко используется, имеет отличные инструменты, имеет большую поддержку форм множественного числа, очень популярен в сообществе переводчиков...
Так что решите, вы действительно считаете, что получить текст не так хорошо решение?
Я не думаю, что так. Вы вообще не работали с другими решениями, поэтому попытайтесь понять, как это работает на первом месте.