Файлы локализации PHP - PullRequest
       8

Файлы локализации PHP

0 голосов
/ 19 октября 2011

Я реализую языковые файлы для моего приложения PHP. Я использую константы для определения каждого слова, для которого я хочу получить перевод. Я поместил в корень моего приложения папку с файлами, такими как en.php, fr.php, de.php, it.php и т. Д. Переводы предназначены для отображения элементов формы и сообщений об ошибках на соответствующем языке. Язык можно выбрать, нажав на флаг в верхней части страницы.

В чем я не уверен, так это в том, должен ли языковой файл, содержащий все определенные слова, быть одним файлом или разбит на множество, чтобы я мог загрузить только то, что мне нужно для каждой страницы. Мое приложение становится довольно большим, и кажется плохой идеей загрузить гигантский файл PHP.

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

Спасибо!

Ответы [ 2 ]

0 голосов
/ 19 октября 2011

Я тоже согласен разделить его, создать файл по мере необходимости.

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

. / Index.php

<?php  
session_start();   
///////////////////////////////// LANGUAGE /////////////////////////////////// 
if(!isset($_SESSION['langid']))/*This will run only once*/
    $_SESSION['langid']="en";//persistent store
if(isset($_GET['langid'])) 
    $_SESSION['langid']=$_GET['langid'];//persistent store 

 /*** define the   path ***/  
define ('__LANG_PATH',  'C:/wamp/www/lang/lang/'.$_SESSION['langid'].'/');

echo"
<a href=index.php?langid=en>English</a><br>
<a href=index.php?langid=fr>French</a><br><br>";

include('history.php');
?>

. / History.php

<?PHP
    include __LANG_PATH.'txtHistory.inc';
    echo txtArticle::$body_title;
    echo '<br>';
    echo txtArticle::$history_article
?>

. / lang / en / txtHistory.inc

<?PHP
 class txtArticle 
{
    public static $body_title="Welcome to history page..";  
    public static $history_article=
"Based at RAF Medmenham, a country house on the banks of the 
Thames, the Central Interpretation Unit (CIU) was established in 
April 1941. ."; 
} 
?>

. / lang / fr / txtHistory.inc

<?PHP
 class txtArticle 
{
    public static $body_title="Bienvenue à la page d'histoire..";   
    public static $history_article=
"Basé à la RAF Medmenham, une maison de campagne sur les
leur travail, les opérations de l'OPC et la guerre, qui incluse guider 
les raids de la Dam Busters, a été largement méconnus jusqu'à présent.
";  
} 
?>
0 голосов
/ 19 октября 2011

Ну, я бы предложил использовать подход «разделяй и властвуй», очевидно, если вы можете достичь такой модульности, что вы включаете только файлы страниц / запросов для конкретного языка, чем это улучшит время отклика

...