请教关于,语言页面跳转,比如tpl的文件夹分别设置了两个en中放置英文tpl,cn中放置中文tpl,index.tpl分别设置了两个语言按钮,index.php中该如何写?
1,首先是,怎么取得语言变量
2,怎么去转换

解决方案 »

  1.   

    一般是设置两个php文件 
    中文语言文件中放置的中文数组 英文的是英文数组 tpl中的 
    文字信息都用变量表示
    然后根据选择的语言 来判断调用哪个语言文件中的数组进行替换
      

  2.   

    加载语言必须通过服务器呀, 可以把语言 的url参数存储到$_SESSION中 ,以后每次都判断一下,看一下加载哪个文件
      

  3.   

    if (empty($language) or $language==""){$language=trim($_GET[language]);}
    if (empty($language) or $language==""){$language=trim($_POST[language]);}if($language<>""){
    if(isset($_SESSION["language"]) ){unset($_SESSION["language"]);}
    session_register("language");
        $_SESSION["language"]=$language;
    }
    elseif($language=="" and $_SESSION["language"]==""){

    if(isset($_SESSION["language"]) ){unset($_SESSION["language"]);} 
    session_register("language");
        $_SESSION["language"]="jp";///取得语言变量后
    }
    if($_SESSION["language"]=="cn"){
    $smarty->template_dir = "templates/user/cn";
    $smarty->compile_dir = "templates_c/user/cn";
    这样吗?
      

  4.   

    把语言输出和php文件和模板分离, 用cookie保存显示的语言, 需要那种语言加载模板时加载那个语言包, 这样做可以随时升级, 更改, 添加新的语言, 只要download一个语言包就可以了.
      

  5.   

    大致思路如前面几位所说的,具体实现可以去看下ecshop的源码。
      

  6.   

    我是使用tpl和php分离,加载语言放在了en和jp文件夹下,php该如何写?我上面写的那段是否有什么问题吗?谢谢
      

  7.   

    我目前的原理是:
    中文的tpl都放在了cn文件夹里,英文都放在了en的文件夹里
    if (empty($language) or $language==""){$language=trim($_GET[language]);}
    if (empty($language) or $language==""){$language=trim($_POST[language]);}if($language<>""){
    if(isset($_SESSION["language"]) ){unset($_SESSION["language"]);}
    session_register("language");
        $_SESSION["language"]=$language;
    }
    elseif($language=="" and $_SESSION["language"]==""){

    if(isset($_SESSION["language"]) ){unset($_SESSION["language"]);} 
    session_register("language");
        $_SESSION["language"]="en";
    }
    先获取语言变量
    然后
    if($_SESSION["language"]=="jp"){
    $smarty->template_dir = "templates/user/en";
    $smarty->compile_dir = "templates_c/user/en";
    加载语言包
      

  8.   

    总是出来
    Warning: Smarty error: unable to read resource: "login.tpl" in /usr/local/apache/htdocs/include/smarty/libs/Smarty.class.php on line 1088
    但是这个文件在文件夹中是有的
      

  9.   


    为什么这段只能取到jp?
    if (empty($language) or $language==""){$language=trim($_GET[language]);}
    if (empty($language) or $language==""){$language=trim($_POST[language]);}if($language<>""){
    if(isset($_SESSION["language"]) ){unset($_SESSION["language"]);}
    session_register("language");
        $_SESSION["language"]=$language;
    }
    elseif($language=="" and $_SESSION["language"]==""){

    if(isset($_SESSION["language"]) ){unset($_SESSION["language"]);} 
    session_register("language");
        $_SESSION["language"]="jp";
    }