2013-10-13 13 views
9

Vấn đề giải quyết (xem dưới đây)PHP setlocale không làm việc ngay cả với miền địa phương hiện có

tôi đã tạo ra miền địa phương trên máy chủ của tôi, tôi đã xác nhận rằng họ tồn tại (-a locale tôi cung cấp dưới đây), nhưng khi tôi sử dụng:

setlocale(LC_TIME,'fr_FR'); 
    or setlocale(LC_TIME,'fr_FR.utf8'); 

nó không hoạt động chút nào.

mẫu:

<?php 
    setlocale(LC_TIME,'fr_FR.utf8'); 
    echo 'locale - '.setlocale(LC_TIME,'0'); 
    echo ' : month - '.strftime('%B'); 
    echo '<br />'; 

    setlocale(LC_TIME,'fr_FR'); 
    echo 'locale - '.setlocale(LC_TIME,'0'); 
    echo ' : month - '.strftime('%B'); 
    echo '<br />'; 

    setlocale(LC_TIME,'fr-FR'); 
    echo 'locale - '.setlocale(LC_TIME,'0'); 
    echo ' : month - '.strftime('%B'); 
    echo '<br />'; 

    setlocale(LC_TIME,'fr'); 
    echo 'locale - '.setlocale(LC_TIME,'0'); 
    echo ' : month - '.strftime('%B'); 
    echo '<br />'; 

    setlocale(LC_TIME,'french'); 
    echo 'locale - '.setlocale(LC_TIME,'0'); 
    echo ' : month - '.strftime('%B'); 
    echo '<br />'; 
    ?> 

Kết quả:

locale - C : month - October 
    locale - C : month - October 
    locale - C : month - October 
    locale - C : month - October 
    locale - C : month - October 

locale -a (hiển thị các miền địa phương fr):

fr_BE.utf8 
    fr_CA.utf8 
    fr_CH.utf8 
    fr_FR.utf8 
    fr_LU.utf8 

Cảm ơn bạn đã giúp đỡ!

Trả lời

9

okay, sau khi đăng bài này, tôi đã thử một điều nữa. Vì vậy, đối với những người gặp sự cố tương tự, trước tiên bạn cần phải đặt cài đặt này trước khi đặt ngôn ngữ mới:

setlocale(LC_TIME, ""); 
+12

Điều này không giúp tôi: ( – user706420

+2

Kiểm tra để đảm bảo rằng bạn đã cài đặt và có sẵn ngôn ngữ đó trên máy chủ của mình. Chúng phải tồn tại để sử dụng chúng. 'Locale -a' – kambythet

+0

Bằng cách nào đó đã làm việc cho tôi, nhưng tôi' (PS: Chấp nhận anser của riêng bạn ':)') – user2019515

3

Bạn phải khởi động lại php trước khi sử dụng miền địa phương mới được cài đặt.

1

Nếu bạn muốn sử dụng ngôn ngữ mặc định hệ thống trong Apache2, bạn chỉ cần thêm (hoặc bỏ ghi chú) dòng sau trong thư mục/etc/apache2/envvars file:

. /etc/default/locale 

suy nghĩ để khởi động lại apache2 sau hoạt động này và xóa bộ nhớ cache tiềm năng của bạn để kiểm tra miền địa phương cũng được cung cấp cho PHP.

Các vấn đề liên quan