Rumah  >  Artikel  >  rangka kerja php  >  Cara menggunakan ThinkPHP6 untuk mencapai interaksi setempat

Cara menggunakan ThinkPHP6 untuk mencapai interaksi setempat

PHPz
PHPzasal
2023-06-20 09:11:301358semak imbas

Dengan pembangunan Internet dan pecutan globalisasi, semakin banyak tapak web dan aplikasi memerlukan interaksi setempat untuk wilayah dan bahasa yang berbeza. Interaksi setempat merujuk kepada melaraskan tapak web atau aplikasi untuk memenuhi keperluan pengguna berdasarkan faktor seperti bahasa, budaya dan tabiat negara atau wilayah tempat pengguna berada. Dalam artikel ini, kami akan memperkenalkan cara menggunakan rangka kerja ThinkPHP6 untuk mencapai interaksi setempat.

1. Sokongan berbilang bahasa

Sokongan berbilang bahasa ialah asas untuk interaksi setempat. Rangka kerja ThinkPHP6 menyediakan pelbagai kaedah sokongan berbilang bahasa, dan kita boleh memilih kaedah yang sesuai mengikut keperluan sebenar.

  1. Sokongan berbilang bahasa berasaskan fail

Sokongan berbilang bahasa berasaskan fail ialah kaedah yang paling biasa digunakan. Kami boleh menyimpan fail terjemahan dalam bahasa berbeza dalam direktori berbeza dan mencapai sokongan berbilang bahasa dengan menetapkan pek bahasa.

Pertama, cipta fail lang.php dalam direktori konfigurasi untuk menetapkan item konfigurasi pek bahasa, seperti yang ditunjukkan di bawah:

<?php
return [
    // 默认语言
    'default_lang' => 'zh-cn',
    // 扩展语言包
    'extend_list' => [ 'zh-cn','en-us' ],
];

Penerangan:

default_lang: Default Pek bahasa.

extend_list: Senarai pek bahasa lanjutan.

Seterusnya, buat direktori pek bahasa yang sepadan dalam direktori app/lang Mari kita ambil pakej bahasa Cina sebagai contoh, buat direktori zh-cn di bawah direktori lang dan buat zh-cn di bawah. direktori. fail .php, digunakan untuk menyimpan pasangan nilai kunci yang sepadan dengan terjemahan bahasa Cina, seperti yang ditunjukkan di bawah:

<?php
return [
    'hello'     =>  '你好',
    'welcome'   =>  '欢迎',
];

Buat direktori en-us dalam pakej bahasa Inggeris dan buat fail en-us.php dalam direktori ini , digunakan untuk menyimpan pasangan nilai kunci yang sepadan dengan terjemahan bahasa Inggeris, seperti yang ditunjukkan di bawah:

<?php
return [
    'hello'     =>  'Hello',
    'welcome'   =>  'Welcome',
];

Akhir sekali, gunakan kelas Lang dalam pengawal atau paparan untuk terjemahan, contohnya:

echo Lang::get('hello');

Melalui langkah di atas, kami boleh melaksanakan sokongan berbilang bahasa dalam aplikasi kami.

  1. Sokongan berbilang bahasa berasaskan pangkalan data

Selain sokongan berbilang bahasa berasaskan fail, ThinkPHP6 juga menyediakan sokongan berbilang bahasa berasaskan pangkalan data. Kaedah ini mencapai sokongan berbilang bahasa dengan menyimpan maklumat terjemahan dalam pangkalan data.

Pertama, cipta jadual bahasa dalam pangkalan data untuk menyimpan maklumat terjemahan, seperti yang ditunjukkan di bawah:

CREATE TABLE `language` (
  `id` int unsigned NOT NULL AUTO_INCREMENT,
  `name` varchar(50) NOT NULL COMMENT '翻译名称',
  `lang` varchar(10) NOT NULL COMMENT '语言包',
  `value` varchar(255) NOT NULL COMMENT '翻译内容',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

Seterusnya, buat fail konfigurasi lang.php dalam direktori konfigurasi dan tetapkan pakej bahasa kepada Mod pangkalan data, seperti yang ditunjukkan di bawah:

<?php
return [
    // 语言类型
    'type'      => 'db',
    // 默认语言
    'default_lang' => 'zh-cn',
    // 数据表名
    'table_name' => 'language',
];

Penerangan:

jenis: jenis pek bahasa, di sini ditetapkan kepada mod pangkalan data.

default_lang: Bahasa lalai.

table_name: Nama jadual data yang menyimpan maklumat terjemahan.

Akhir sekali, hanya gunakan kelas Lang dalam pengawal atau paparan untuk terjemahan, contohnya:

echo Lang::get('hello');

Melalui langkah di atas, kami boleh menggunakan pangkalan data untuk menyimpan maklumat terjemahan dalam aplikasi untuk mencapai sokongan berbilang Bahasa.

2. Interaksi setempat

Selain sokongan berbilang bahasa, ThinkPHP6 juga menyediakan satu siri fungsi interaktif setempat untuk pelarasan kepada wilayah dan bahasa yang berbeza. Berikut ialah beberapa fungsi interaktif setempat yang biasa digunakan:

  1. date_format()

date_format() fungsi digunakan untuk memformat tarikh dan masa. Format masa dan tarikh juga mungkin berubah apabila aplikasi dijalankan di kawasan dan tempat yang berbeza. Oleh itu, adalah sangat perlu untuk menggunakan fungsi date_format() untuk memformat tarikh dan masa dalam aplikasi anda.

Sebagai contoh, kod berikut akan memformat masa semasa ke dalam bentuk "tahun-bulan-hari jam:minit:saat":

$date = date('Y-m-d H:i:s');
echo date_format(date_create($date), 'Y-m-d H:i:s');
  1. number_format()

Fungsi number_format() digunakan untuk memformat nombor. Negara dan wilayah yang berbeza mempunyai format nombor yang berbeza, dan anda boleh menggunakan fungsi number_format() untuk memformatkannya mengikut keperluan. Contohnya:

$num1 = 1234567.89;
$num2 = 9876543.21;
echo number_format($num1, 2, '.', ',');
echo number_format($num2, 2, '.', ',');

Hasil output ialah:

1,234,567.89
9,876,543.21
  1. setlocale()

Fungsi setlocale() digunakan untuk menetapkan persekitaran berkaitan penyetempatan pembolehubah. Sebagai contoh, kita boleh menggunakan fungsi setlocale() untuk menetapkan format tarikh dan masa, simbol mata wang, format nombor, dll. Untuk kandungan tertentu, sila rujuk arahan yang berkaitan dalam manual PHP. Contohnya:

setlocale(LC_TIME, 'en_US.UTF8');
echo strftime("%b %d %Y %H:%M:%S");

Kod di atas akan mengeluarkan tarikh dan masa dalam format "01 Jan 2022 00:00:00".

Melalui kaedah di atas, kami boleh mencapai interaksi setempat di bawah rangka kerja ThinkPHP6 dan memberikan pengalaman yang lebih baik untuk pengguna di kawasan dan bahasa yang berbeza.

Atas ialah kandungan terperinci Cara menggunakan ThinkPHP6 untuk mencapai interaksi setempat. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn