Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typo3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/video/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
多语言php脚本_Php_Multilingual - Fatal编程技术网

多语言php脚本

多语言php脚本,php,multilingual,Php,Multilingual,如何在html/php脚本中创建多语言主菜单 现在我有 <li> <a href="{url p='poceni-letalske-karte.html'}"> <span>{t t="Letalske Karte"}</span> </a> </li> 及 English它会转到mysite.com/EN 我想当用户选择英语EN代码时,它也会改变主菜单文本,怎么做? 这是我们的网站 我找到了这个脚本 但是我不知道如

如何在html/php脚本中创建多语言主菜单 现在我有

<li>
<a href="{url p='poceni-letalske-karte.html'}">
<span>{t t="Letalske Karte"}</span>
</a>
</li>
  • English
    它会转到
    mysite.com/EN
    我想当用户选择英语EN代码时,它也会改变主菜单文本,怎么做? 这是我们的网站

    我找到了这个脚本
    但是我不知道如何设置为/EN/因为现在在这个脚本中设置为
    index.php?lang=EN

    我的方法是执行以下操作:

    步骤1:设置文件夹树结构,如下所示:

    Languages
     -en
       -lang.en.php
     -fr
       -lang.fr.php
     -de
       -lang.de.php
    
    继续使用您想要支持的所有其他语言创建新文件夹

    步骤2:创建语言文件,我将从
    languages/en/lang.en.php

    <?php   
      $lang['label']      = 'Value for this label';
      $lang['firstname']  = 'First Name';
      $lang['lastname']   = 'Last Name';
      $lang['phone']      = 'Phone';       
      // ETC
    ?>
    
    步骤3:通过url变量检查用户是否请求语言更改

    <?php
      // Start a Session, You might start this somewhere else already.
      session_start();
    
      // What languages do we support
      $available_langs = array('en','fr','de');
    
      // Set our default language session
      $_SESSION['lang'] = 'en';   
    
      if(isset($_GET['lang']) && $_GET['lang'] != ''){ 
        // check if the language is one we support
        if(in_array($_GET['lang'], $available_langs))
        {       
          $_SESSION['lang'] = $_GET['lang']; // Set session
        }
      }
      // Include active language
      include('languages/'.$_SESSION['lang'].'/lang.'.$_SESSION['lang'].'.php');
    
    ?>
    
    
    
    步骤4:您可以像这样访问您的语言部分,它将根据加载的语言文件而改变

    <?php
      echo $lang['firstname'];
    ?>
    
    
    

    希望这能帮助您开始使用上面的代码,但是每次加载到EN时会话都会被覆盖,所以将其更改为

    <?php
    // Start a Session, You might start this somewhere else already.
    session_start();
    
    // What languages do we support
    $available_langs = array('en','zh-cn','es');
    
    
    
    
    if(isset($_GET['lang']) && $_GET['lang'] != ''){
        // check if the language is one we support
        if(in_array($_GET['lang'], $available_langs))
        {
            $_SESSION['lang'] = $_GET['lang']; // Set session
        }
    }
    
    
    
    // Set our default language session ONLY if we've got nothing
    if ($_SESSION['lang']=='') {
        $_SESSION['lang'] = 'en';
    
    }
    
    
    // Include active language
    include('languages/'.$_SESSION['lang'].'/lang.'.$_SESSION['lang'].'.php');
    
    ?>
    

    如果您的语言文件很长,您可以通过在语言文件上方添加以下内容,按页面将其拆分:

    // for login page
    $textpart = 'login';
    
    然后让语言页面将数组拆分为

    <?php   
    switch ($textpart) {
      //login page
      case 'login':
        $lang['label']      = 'Value for this label';
        $lang['firstname']  = 'First Name';
        $lang['lastname']   = 'Last Name';
        $lang['phone']      = 'Phone';
        break;
    
      //home page
      case 'home':
        // ETC
    }
    
    // All pages
       $lang['title']       = 'Title';
       // ETC
    
    ?>
    
    
    
    LM PHP(语言管理PHP) 对PHP的多语言管理和支持。


    样本:

    <?php
    include "LMPHP.php";
    /////////////////////////////
    $langs = new LMPHP();
    
    $langs -> language_add("en","English");
    $langs -> language_add("fr","Germany");
    
    $langs -> language_active("en");
    $langs -> word_add("Bye","Good Bye!");
    $langs -> word_add("HowAre");
    
    $langs -> language_active("fr");
    $langs -> word_add("Bye","Au revoir!");
    
    print_r( $langs -> words );
    
    echo $langs -> word_get("Bye");
    

    是的,当然,我们都说。。。不管dat语言是什么…你昨天问了这个问题。你应该编辑这个问题,而不是打开一个新的问题。这个问题有什么问题吗?@LukaBoltes-首先,你可以在问题中加入你的脚本,而不是链接到第三方网站。如果你能证明自己尝试过某件事,即使它不起作用,你也更有可能得到帮助——就像现在这样,你的问题看起来像是你希望有人为你做一切。您是否已将语言添加到站点?为什么不起作用?当用户更改值时会发生什么情况?应该发生什么?Thx代码第三步放在哪里?另外,我如何设置为site.com/EN/?您是否计划在每个文件夹中都有重复的网站?或者你只是想让它标记一种语言并重定向到主站点?我的建议是使用一个查询字符串,比如index.php?lang=EN来捕获用户想要的语言首选项,并使用htaccess将这些URL重写为index.php/ENHow来创建htaccess rewrite?它需要像hotelpedia.si/EN一样,现在是酒店语言选择器,同时我想被翻译为SEO的主菜单与index.php/EN相同,或者只是/EN/对吗?因为我更喜欢正义/正义/美丽的解决方案。这帮了大忙。我只是将$lang替换为$dict,以避免与$\u GET数组中的'lang'键混淆。
    
    <?php
    include "LMPHP.php";
    /////////////////////////////
    $langs = new LMPHP();
    
    $langs -> language_add("en","English");
    $langs -> language_add("fr","Germany");
    
    $langs -> language_active("en");
    $langs -> word_add("Bye","Good Bye!");
    $langs -> word_add("HowAre");
    
    $langs -> language_active("fr");
    $langs -> word_add("Bye","Au revoir!");
    
    print_r( $langs -> words );
    
    echo $langs -> word_get("Bye");