Многоязычная поддержка сайта - PullRequest
1 голос
/ 06 июля 2011

При попытке изменить индексную страницу eyeos для поддержки мультиязычности методом gettext мне не удалось решить проблему с индексной страницей.

ВЫПУСК:

На индексной странице 4шаги

Можно изменить главную страницу на язык, который мы выбираем

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

а также сообщить об ошибке как "Неопределенный индекс: отправить в /var/www/html/install/index.php в строке 78"

Как я могу ее исправить ...

файл index.php:

      <?php
        ob_start();
            if(!isset($_GET['step'])) 
            {
            $step = 'introduction';
           }  
           else 
           {
            $step = basename($_GET['step']);
           }
           require_once('steps/'.$step.'.php');
         echo '<?xml version="1.0" encoding="UTF-8" ?>';
           ?>
             <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
            <html xmlns="http://www.w3.org/1999/xhtml">
            <head>
     <meta content="text/html; charset=utf-8" http-equiv="Content-Type" />
             <link rel="stylesheet" type="text/css" media="all" href="style.css"/>
     <title>eyeOS 2 installation</title>
 </head>
 <body>

<form action="" method="post">
    <select name="language">
    <option value="en">English</option>
    <option value="es">Spanish</option>
    </select>
    <input type="submit" name="submit" value="change language"/>
</form>

        <div id="wrapper" class="wrapper">
            <div id="topbar" class="topbar">
                <img src="logo-eyeos.png" id="logo" class="logo" />
                <div id="logotext" class="logotext">
                    <? echo toptext(); ?>
                </div>
            </div>
            <span id="sidebar" class="sidebar">
                <ul class="sidelist">
                    <?php

                        if ($_POST['submit'])
                        {
                            bindtextdomain('messages', './');
                            textdomain('messages');

                            $lang=$_POST['language'];

                            if ($lang)
                            {

                                switch ($lang) 
                                {
                                    case 'es':
                                        putenv('LC_ALL=es_ES'); 
                                        setlocale(LC_ALL,'es_ES');
                                        break;
                                    case 'en':
                                    default:
                                        setlocale(LC_ALL,'en_GB');
                                        break;
                                }
                            }               


                        if($step == 'introduction') {
                            echo _('<li class="selected">Introduction</li>');
                        } else {
                            echo _('<li>Introduction</li>');
                        }

                        if($step == 'requirements') {
                            echo _('<li class="selected">Requirements</li>');
                        } else {
                            echo _('<li>Requirements</li>');
                        }
                        if($step == 'configuration') {
                            echo _('<li class="selected">Configuration</li>');
                        } else {
                            echo _('<li>Configuration</li>');
                        }

                        if($step == 'end') {
                            echo _('<li class="selected">End</li>');
                        } else {
                            echo _('<li>End</li>');
                        }
                        }  

                    ?>
                </ul>
            </span>
            <span id="content" class="content">
                  <?php getContent(); ?>
            </span>
        </div>
</body>

, и я отредактировал некоторую строку в файле messages.po

Строки:

1. "Content-Type: text / plain; charset = UTF-8 \ n"

2.

: index.php: 81Msgstr "Введение " msgstr "Введение " : index.php: 83

msgid "

Введение " msgstr " Вступление" * 10Msgstr "Требования " msgstr "Requisitos "

: index.php: 89 * 1056 msgstr "Требуется *1053*"* msgid " Требования " msgstr " Реквизиты " 4. : index.php: 92

msgstr "Конфигурация " msgstr "Конфигурация "

: index.php: 94

msgid "

Конфигурация " msgstr " Конфигурация * 1077Msgstr "End " msgstr "Final "

: индекс index * php: * " 5. : index.php: 98

msgstr "

Конец " msgstr " Финал "

2. #: index.php: 81 msgid "Введение"msgstr" Введение"

: index.php: 83

msgid"

Введение"msgstr" Введение"

1 Ответ

1 голос
/ 06 июля 2011

Чтобы исправить ошибку, о которой вы сообщаете, and also report an error as "Undefined index: submit in /var/www/html/install/index.php on line 78", измените:

if ($_POST['submit'])

на:

if (isset($_POST['submit']))

2-й выпуск:

Я бы добавил немного отладкик вашему коду, чтобы увидеть, каков результат $_POST['language'].Возможно, вы не правильно понимаете язык в вашем switch

...