Локализация сайта - PullRequest
1 голос
/ 18 января 2011

Что лучше использовать для веб-сайта среднего размера (пока не знаю точное количество страниц, слов и т. Д.):

A) Файлы PHP со статическими ресурсами:

en.php

    $lang_welcome = 'Welcome';

de.php

    $lang_welcome = 'Willkommen';

B) Таблица MySQL, содержащая переводы:

+------+-----------+---------+-------------+
| lang |   path    |  term   | translation |
+------+-----------+---------+-------------+
|  en  | index.php | welcome |   Welcome   |
+------+-----------+---------+-------------+
|  de  | index.php | welcome |  Willkommen |
+------+-----------+---------+-------------+
|  en  |           |  cancel |   Cancel    |
+------+-----------+---------+-------------+
|  de  |           |  cancel |  Abbrechen  |
+------+-----------+---------+-------------+

(Единственное решение, которое ямог бы подумать прямо сейчас.)

C.) Какое-то другое решение.

Ответы [ 4 ]

1 голос
/ 18 января 2011

Таблицы перевода текста в базе данных - это ужасная идея.

Для подхода с переводом файлов существует несколько вариантов.Для очень крошечного приложения подходит мнемонический id-> text подход (обычно это константы или текстовые массивы).Однако вы должны предпочесть gettext , если это доступно и выполнимо.(Существуют эмуляции как нативный PHP-скрипт.)

Файлы данных обычно имеют вид:

 "Welcome at" => "Willkommen bei",

Создание гораздо более удобочитаемого и удобного в обслуживании кода, который не использует сокращений или сокращенийиндексы массива / константы / имена переменных:

 print _("Welcome at");
0 голосов
/ 02 февраля 2011

Мы используем простые php-файлы с именами ключей, включая имя файла (тема / раздел) и идентификатор

$lang['nav_home_link'] = 'Home';

, а затем структура папок, помеченная языковым кодом

language |
           |
           | - en 
           |      | - nav.php
           | - ja
           |      | - nav.php

Конечно, мы используем наш собственный инструмент для управления файлами и выполнения переводов для каждого из языков, которые мы поддерживаем. Проверьте это, может быть полезно для вас.

Строка myGengo

0 голосов
/ 18 января 2011

Используйте Gettext для статического содержимого и схему базы данных для динамического содержимого.

0 голосов
/ 18 января 2011

Я думаю, что php файлы более стандартны.Ваш текст не изменится.БД на самом деле не лучший выбор, поскольку они доступны только для чтения.

...