网站的多语言支持

时间:2011-07-06 05:51:45

标签: php multilingual

在尝试使用gettext方法修改eyeos安装索引页面以支持多语言时,我无法解决索引页面的问题。

ISSUE:

索引页面有4个步骤

可以将首页更改为我们选择的语言

但是当我尝试单击下一步时,它会显示默认语言而不是选择的语言

并报告错误为“未定义的索引:在第78行的/var/www/html/install/index.php中提交”

我该如何解决...

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:81

msgstr“简介” msgstr“Introducción”

:index.php:83

msgstr“

  • 简介
  • ” msgstr“
  • Introducción
  • 3

    :index.php:87

    msgstr“要求” msgstr“Requisitos”

    :index.php:89

    msgstr“

  • 要求
  • ” msgstr“
  • Requisitos
  • 4

    :index.php:92

    msgstr“配置” msgstr“Configuración”

    :index.php:94

    msgstr“

  • 配置
  • ” msgstr“
  • Configuración
  • 5

    :index.php:98

    msgstr“结束” msgstr“最终”

    :index.php:100

    msgstr“

  • 结束
  • ” msgstr“
  • 最终
  • 2.#:index.php:81 msgstr“简介” msgstr“Introducción”

    :index.php:83

    msgstr“

  • 简介
  • ” msgstr“
  • Introducción
  • 1 个答案:

    答案 0 :(得分:1)

    要修复您报告的错误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']))
    

    第二期:

    我会为您的代码添加一些调试,以查看$_POST['language']的结果。也许您没有在switch

    中正确地使用该语言