Альтернативы gettext?

Есть ли какие-либо общие альтернативы локализации/перевода gettext?

Открытый исходный код или собственный не имеет значения.

Когда я говорю, что альтернатива gettext, имею в виду библиотеку для интернационализации со своего рода бэкендом локализации.

Причина, которую я спрашиваю, состоит в том, потому что (среди прочего) я нахожу, что путь gettext делает вещи, немного громоздкие и статичные, главным образом в бите бэкенда.

27
задан Tor Valamo 2 February 2010 в 16:12
поделиться

1 ответ

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

-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, все еще бета-версия).


Изменить:

Если не нравится получить текст ...

Это технологии перевода:

  • OASIS XLIFF
  • GNU gettext po/mo files
  • POSIX каталоги
  • Qt ts/tm files
  • Java свойства,
  • ресурсы Windows.

Теперь:

  • Последние два всего дерьма... Очень трудно использовать переводить и поддерживать, не поддерживать множественные формы.
  • Qt ts/tm - требует использования рамка. Имеют модель, очень похожую на gettext . Неплохое решение, но ограничено Qt. Не так полезен в универсальных программах.
  • Каталоги POSIX - никто не использует их, нет поддержки множественных форм. Дерьмо.
  • OASIX XLIFF - «стандартное» решение, зависит от XML, даже ICU требует компиляции к конкретным ресурсам ICU для использования. Ограниченные инструменты перевода, я не знаю библиотеки, которая поддерживает XLIFF. Формы множественного числа не так просты в использовании (ICU включал некоторую поддержку только в выпуске 4.x).

Что у нас теперь?

GNU gettext , широко используется, имеет отличные инструменты, имеет большую поддержку форм множественного числа, очень популярен в сообществе переводчиков...

Так что решите, вы действительно считаете, что получить текст не так хорошо решение?

Я не думаю, что так. Вы вообще не работали с другими решениями, поэтому попытайтесь понять, как это работает на первом месте.

43
ответ дан 28 November 2019 в 05:12
поделиться
Другие вопросы по тегам:

Похожие вопросы: