Hướng dẫn php multi language library - thư viện đa ngôn ngữ php

Tôi muốn tạo trang web đa ngôn ngữ với PHP dựa trên các phiên như trang web này untiny.com

Tôi cố gắng với mã này nhưng không hoạt động:

    

Bất cứ ai cũng có thể giúp tôi. Cảm ơn


Cảm ơn tất cả. Nhưng @ bây giờ không có gì hoạt động, có những ý tưởng khác.

Hướng dẫn php multi language library - thư viện đa ngôn ngữ php

Đã hỏi ngày 23 tháng 10 năm 2009 lúc 18:38Oct 23, 2009 at 18:38Oct 23, 2009 at 18:38

Có lẽ vấn đề của bạn là trong dòng cuối cùng. Nó sẽ hoạt động như:

else if ($lang != "ar" || $lang != "en") {header("Location: http://it2.in/");}

Ngoài ra, tôi đề nghị bạn nên tạo một mảng riêng để lưu trữ các ngôn ngữ có sẵn

$known_languages = array('en', 'ar'); ## just add new language here when you need
session_start();

## if language is stored in SESSION then use it, otherwise use GET params
if (array_key_exists('lang', $_SESSION)) {
    $lang = $_SESSION['lang'];
    include($lang.'/language.php'); 
    ## echo "You current language is $lang";
    include("page.php");
}
else {
    $lang = $_GET['lang'];

    ## if language is not set or is not available, then use default value
    if (!isset($lang) || !in_array($lang, $known_languages) {
        $lang = "ar";
    }
    include($lang.'/language.php'); 
    $SESSION["lang"] = $lang; 
    header("Location: http://it2.in/");
}

Đã trả lời ngày 23 tháng 10 năm 2009 lúc 18:43Oct 23, 2009 at 18:43Oct 23, 2009 at 18:43

Ivan Nevostruevivan NevostruevIvan NevostruevIvan Nevostruev

Phim thương hiệu vàng 27,4K88 gold badges63 silver badges82 bronze badges8 gold badges63 silver badges82 bronze badges

2

Bạn có thể giải thích chính xác những gì không hoạt động?

Có một lỗi trong if-statement của bạn. Lần cuối cùng khác-nếu luôn luôn đúng, bởi vì bạn đang cung cấp kết quả từ việc so sánh với chuỗi "en". Một tuyên bố khác sẽ làm công việc.


Đã trả lời ngày 23 tháng 10 năm 2009 lúc 18:44Oct 23, 2009 at 18:44Oct 23, 2009 at 18:44

Svenssvenssvenssvens

11.1k6 Huy hiệu vàng36 Huy hiệu bạc55 Huy hiệu Đồng6 gold badges36 silver badges55 bronze badges6 gold badges36 silver badges55 bronze badges

$lang= $_GET['lang'];
include $lang . "/language.php";

PHP theo mặc định vô hiệu hóa những loại bao gồm, vì vậy bạn sẽ phải kích hoạt thủ công.

Câu hỏi thực sự là: có gì trong ngôn ngữ.php?

// en/language.php
$MESSAGES[0] = "Hello";
// es/language.php
$MESSAGES[0] = "Hola";
// fr/language.php

Sau đó, trong mã của bạn bạn làm:

print "

" . $MESSAGES[0] . "

";

Điều này sẽ không mở rộng và đầu của bạn sẽ giải thích rất nhanh (chờ đã, tin nhắn là 1023? Hoặc 1022? Hoặc 2149?). Vui lòng xem xét việc chuyển mã của bạn sang getText, IMHO là một giải pháp tốt hơn và cho phép bạn thêm ngôn ngữ mới mà không cần mã mới. Đây là bản hit đầu tiên từ Google sẽ cho bạn khởi đầu. Nếu bạn cần thêm thông tin, xin vui lòng xem xét. http://www.phpdig.net/ref/rn26.html

Đã trả lời ngày 23 tháng 10 năm 2009 lúc 18:50Oct 23, 2009 at 18:50Oct 23, 2009 at 18:50

elcucoelcucoelcucoelcuco

8.7749 Huy hiệu vàng45 Huy hiệu bạc67 Huy hiệu Đồng9 gold badges45 silver badges67 bronze badges9 gold badges45 silver badges67 bronze badges

2

Khi bạn đang sử dụng hàm tiêu đề luôn cân nhắc sử dụng EXIT (); sau khi nó dừng việc thực thi mã


Bây giờ bạn nên được chuyển hướng đến trang mong muốn của bạn :)

Đã trả lời ngày 23 tháng 10 năm 2009 lúc 18:50Oct 23, 2009 at 18:50Oct 23, 2009 at 18:50

elcucoelcucoelcucotawfekov

8.7749 Huy hiệu vàng45 Huy hiệu bạc67 Huy hiệu Đồng9 gold badges45 silver badges67 bronze badges3 gold badges27 silver badges50 bronze badges


Khi bạn đang sử dụng hàm tiêu đề luôn cân nhắc sử dụng EXIT (); sau khi nó dừng việc thực thi mãOct 23, 2009 at 18:55

w35l3yw35l3yw35l3yw35l3y

Bây giờ bạn nên được chuyển hướng đến trang mong muốn của bạn :)3 gold badges38 silver badges50 bronze badges

0