IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> PHP知识库 -> wordpress 自定义插件 国际化本地化 -> 正文阅读

[PHP知识库]wordpress 自定义插件 国际化本地化

wordpress自定义插件如何国际化与本地化

国际化与本地化,说的直白点就是切换语言的时候,不需要改任何代码。国际化指你的项目能够支持多种语言,比如:中文、英文、日文等等。本地化指的是你切换语言不需要改代码,直接就能看到效果。

  1. 本地安装gettext

    gettext是一种国际化与本地化系统,在类Unix系统中编写多语言程序时经常被使用。gettext的一个常用的实现版本为GNU gettext,1995年发布

    不论是linux系统还是windows系统,执行以下命令:

    php -m 
    

    查看是否安装了gettext的扩展,如果没有百度安装一下

  2. 找到你的插件目录,在入口文件,一般为插件目录下的一个php文件,注释格式一般为

    /**
     * Plugin Name: customize
     */
    

    注释中的plugin name一般为你自定义的插件名称

  3. 在这个入口文件中,plugin name注释下加一行text domain,加完后如下:

    /**
     * Plugin Name: customize
     * Text Domain: customize
     */
    
  4. 将你插件中需要自定义的功能和页面引入

    require __DIR__ . '/settings-customize.php';
    
  5. 在setting-customize.php中可以写入一个settings常规配置项加一个自定义配置项

    //添加常规选项
    function customize_register_fields() {
        register_setting( 'general', 'customize_fields_des' );
        $title = '<label for="customize_fields_des">' . __( 'website description', 'customize' ) . '</label>';
        add_settings_field( 'customize_fields_des', $title, 'customize_fields_des', 'general' );
    }
    function customize_fields_des() {
        $value = get_option( 'customize_fields_des', '' );
        $des   = '<p class="description">' . __( 'Displayed in the description tab of the first page', 'customize' ) . '</p>';
        echo '<textarea name="customize_fields_des" id="customize_fields_des" class="large-text code" rows="3">' . $value . '</textarea>';
        echo $des;
    }
    add_filter( 'admin_init', 'customize_register_fields' );
    
  6. __()这个函数,后续需要语言切换的地方变量都用这个函数,第一个参数是唯一的id,最好是英文且当前插件下唯一,第二个参数是文本与域,就是一开始设置的text domain:customize

  7. 在后台的plugins插件中将自定义插件customize激活

  8. 插件根目录下创建languages文件夹

  9. 因为是中文,顾命名customize-zh_CN.po 前面一部分是文本域加zh_CN中文标识

  10. po文件写入以下内容

    msgid "website description"
    msgstr "网站描述"
    
    msgid "Displayed in the description tab of the first page"
    msgstr "显示在首页描述标签中"
    
  11. 在languages下执行

    msgfmt customize-zh_CN.po -o customize-zh_CN.mo
    
  12. 这时候lanuages下会生成mo的二进制文件,机器识别

  13. 在插件入口文件customize.php中加载自定义的文本域

    /**
     * Plugin Name: customize
     * Text Domain: customize
     */
    
    require __DIR__ . '/settings-customize.php';
    
    function load_customize_domain() {
        load_plugin_textdomain( 'customize', false, dirname( plugin_basename( __FILE__ ) ) . '/languages/' );
    }
    
    add_action( 'plugins_loaded', 'load_customize_domain' );
    
  14. 切换语言会发现自定义的输入框支持中英切换了

注参考链接:

  PHP知识库 最新文章
Laravel 下实现 Google 2fa 验证
UUCTF WP
DASCTF10月 web
XAMPP任意命令执行提升权限漏洞(CVE-2020-
[GYCTF2020]Easyphp
iwebsec靶场 代码执行关卡通关笔记
多个线程同步执行,多个线程依次执行,多个
php 没事记录下常用方法 (TP5.1)
php之jwt
2021-09-18
上一篇文章      下一篇文章      查看所有文章
加:2021-07-28 07:27:14  更:2021-07-28 07:30:35 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年4日历 -2024/4/26 15:36:51-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码