php
  • multilingual
  • 2013-06-28 2 views 1 likes 
    1

    Как создать Многоязычное главное меню в HTML/PHP скрипт теперь у меня естьМногоязычная PHP скрипт

    <li> 
    <a href="{url p='poceni-letalske-karte.html'}"> 
    <span>{t t="Letalske Karte"}</span> 
    </a> 
    </li> 
    

    и

    <option value='EN'>English</option> которой идут к mysite.com/EN я хочу, когда пользователь выбирает английский язык EN код также изменяет текст главного меню, как это сделать? Это сайт Letalske karte

    Я нашел этот сценарий http://www.bitrepository.com/php-how-to-add-multi-language-support-to-a-website.html Но я не знаю, как установить в/EN/как сейчас в этот скрипт установлен index.php?lang=en

    +0

    Да, конечно, мы все говорим ... независимо Даты языка является ... – Virus721

    +2

    вчера Вы задали этот точный вопрос. Вы должны изменить этот вопрос, а не открывать новый. – andrewsi

    +0

    И что не так с этим вопросом? –

    ответ

    14

    Мой подход должен был бы сделать следующее:

    Шаг 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 
    ?> 
    

    вы бы повторить это для любого другого языка, плохо делать фр, например languages/fr/lang.fr.php. Обратите внимание, как метки остаются неизменными на английском

    <?php 
        $lang['label']  = 'Valeur pour ce label'; 
        $lang['firstname'] = 'Prénom'; 
        $lang['lastname'] = 'Nom de famille'; 
        $lang['phone']  = 'Télé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']; 
    ?> 
    

    надеюсь, что это поможет вам начать работу как идея

    +0

    Thx для кода, где поставить 3-й шаг? Также как я мог установить на site.com/EN/? –

    +0

    Вы планировали дублировать сайты в каждой папке? EN/FR/DE или вы просто хотите, чтобы он обозначал язык и перенаправлялся на главный сайт? – Dave

    +1

    , мой совет: использовать строку запроса, например index.php? Lang = EN, чтобы определить, какие языковые предпочтения пользователю нужны, и использовать htaccess для перезаписи этих URL-адресов, как index.php/EN – Dave

    1

    Используется код выше, но сеанс перезаписаны при каждой загрузке в 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'); 
    
    ?> 
    
    1

    Если ваш файл язык очень долго, вы можете разбить его на странице, добавив это выше, в том числе:

    // 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 
    
    ?> 
    

     Смежные вопросы

    • Нет связанных вопросов^_^