luci的国际化(多语言)

2023-11-13

语言的选择在dispatch函数入口出完成,如果配置文件/etc/config/luci中配置的langauto,则根据浏览器所带的信息选择一个合适的语言,否则就使用lang定义的语言,然后使用i18n.lua中的setlanguage设置对应的语言。

local lang = conf.main.lang or "auto"

         if lang == "auto" then

                   local aclang = http.getenv("HTTP_ACCEPT_LANGUAGE") or ""

                   for lpat in aclang:gmatch("[%w-]+") do

                            lpat = lpat and lpat:gsub("-", "_")

                            if conf.languages[lpat] then

                                     lang = lpat

                                     break

                            end

                   end

         end

         require "luci.i18n".setlanguage(lang)

 

装载资源文件使用i18n.lua中的函数loadc。资源文件位于/usr/lib/lua/luci/i18n,后缀名为lmo,这些文件是有.po文件转换的紧凑格式。

 

如果对应的页面有自己的资源文件,可以在entry定义菜单时添加,如

entry({"admin", "network", "ahcpd"}, cbi("ahcp"), _("AHCP Server"), 90).i18n = "ahcp"

disptach中会自动加载

if track.i18n then

         i18n.loadc(track.i18n)

end

也可以在htm文件中主动调用loadc加载资源文件。

 

对于需要多语言显示的字符串,调用i18n.lua中的translate获取对应语言的字符串显示,参数是po文件对应的英文资源名称。


http://blog.csdn.net/kwongfung/article/details/8488188

官方文档:http://luci.subsignal.org/api/luci/modules/luci.i18n.html


本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

luci的国际化(多语言) 的相关文章

随机推荐

  • 在 Python 3 中使用循环时如何使用 Break、Continue 和 Pass 语句

    介绍 Using for 循环 and while 循环Python 允许您以有效的方式自动化和重复任务 但有时 外部因素可能会影响程序的运行方式 发生这种情况时 您可能希望程序完全退出循环 在继续之前跳过循环的一部分 或者忽略该外部因素
  • 休眠教程

    最近写了很多hibernate教程 休眠是当前市场上最好的Java ORM工具之一 所以这篇文章就像是所有 hibernate 教程和示例文章的索引 您可以依次浏览这些 hibernate 教程 从头开始学习 hibernate 我很可能会
  • Java 中的线程安全

    Java中的线程安全是一个非常重要的话题 Java使用Java线程提供多线程环境支持 我们知道从同一个对象创建的多个线程共享对象变量 这可能会导致数据不一致当线程用于读取和更新共享数据时 线程安全 The reason for data i
  • 如何使用 Ansible 角色抽象您的基础设施环境

    介绍 Ansible 是一种配置管理工具 旨在为管理员和运营团队自动控制服务器 借助 Ansible 您可以使用单个中央服务器来控制和配置许多不同的远程系统 仅使用 SSH 和 Python 作为要求 Ansible 根据任务定义在其管理的
  • 如何在 CentOS 6 上使用 fail2ban 保护 SSH

    Status 已弃用 本文介绍不再受支持的 CentOS 版本 如果您当前运行的服务器运行 CentOS 6 我们强烈建议您升级或迁移到受支持的 CentOS 版本 Reason CentOS 6 于 2020 年 11 月 30 日达到生
  • 如何监控 DigitalOcean Droplet 上的 CPU 使用情况

    介绍 假设您的网站或应用程序比平时更慢 你如何开始调查这个问题 导致应用程序缓慢的原因有很多 但有时是因为服务器的 CPU 已满 本指南将帮助您了解您是否属于这种情况 我们将首先了解 Linux 服务器上两个最常引用的资源使用指标 CPU利
  • 如何在 Python 中将字符串转换为浮点数

    介绍 在这篇文章中 我们将使用Pythonfloat 函数将字符串转换为浮点数 我们还将使用Python的str 函数将浮点数转换为字符串 在使用数据类型进行计算和串联之前正确转换数据类型非常重要 以防止运行时错误 先决条件 为了完成本教程
  • 机器学习简介

    介绍 机器学习是人工智能 AI 的一个子领域 机器学习的目标通常是理解数据的结构并将该数据拟合到人们可以理解和利用的模型中 尽管机器学习是计算机科学的一个领域 但它与传统的计算方法不同 在传统计算中 算法是计算机用来计算或解决问题的显式编程
  • 如何将路由解析器与 Angular 路由器一起使用

    介绍 处理从 API 检索和显示数据的一种方法是将用户路由到组件 然后在该组件的ngOnInit钩子调用服务中的方法来获取必要的数据 在获取数据时 组件也许可以显示加载指示器 还有另一种方法可以使用所谓的route resolver 它允许
  • 如何在 Ubuntu 14.04 上安装 LAMP [快速入门]

    介绍 LAMP 堆栈 Linux Apache MySQL PHP 是一组开源软件 通常安装在一起以使服务器能够托管动态 PHP 网站和 Web 应用程序 本指南包括在 Ubuntu 14 04 上的单个服务器上设置 LAMP 堆栈的步骤
  • Python 中的引导采样

    这是关于 Python 中的 Bootstrap 采样的教程 在本教程中 我们将了解什么是引导 然后了解如何实现它 让我们开始吧 什么是引导抽样 引导抽样的定义如下 在统计学中 引导抽样是一种方法 涉及从数据源中重复抽取样本数据并进行替换
  • 如何在 Ubuntu 14.04 上为多个 Apache 虚拟主机设置 Let's Encrypt 证书

    介绍 SSL 证书在 Web 服务器内用于加密服务器和客户端之间的流量 为访问您的应用程序的用户提供额外的安全性 Let s Encrypt 提供了一种免费获取和安装受信任证书的简单方法 本教程将向您展示如何设置 TLS SSL 证书让我们
  • 如何在 Ubuntu 18.04 上安装 Go

    介绍 Go是 Google 开发的一种现代编程语言 它在许多应用程序和许多公司中越来越受欢迎 并提供了一组强大的库 本教程将引导您下载和安装最新版本的 Go 本文发布时为 Go 1 10 以及构建一个简单的 Hello World 应用程序
  • 使用 C++ 的分数背包

    在本文中 我们将学习使用 C 解决分数背包问题 我们将从查看问题陈述开始 然后转向解决方案 该问题是许多流行的经典问题之一 它与它的兄弟 0 1 背包有很大不同0 N背包 这是一种贪心算法 另外两种是动态规划算法 什么是分数背包 您将获得某
  • 2023年03月 C/C++(八级)真题解析#中国电子学会#全国青少年软件编程等级考试

    C C 编程 1 8级 全部真题 点这里 第1题 最短路径问题 平面上有n个点 n lt 100 每个点的坐标均在 10000 10000之间 其中的一些点之间有连线 若有连线 则表示可从一个点到达另一个点 即两点间有通路 通路的距离为两点
  • Downie4.6.4视频下载工具

    前言 Downie是Mac下一个简单的下载管理器 可以让您快速将不同的视频网站上的视频下载并保存到电脑磁盘里然后使用您的默认媒体播放器观看它们 下载 Downie 解压后直接安装 主要特点 支持许多网站目前支持超过1 000个不同的网站 包
  • SVN基本操作之新手上路

    SVN是什么Svn是一个离线的代码管理 可以多个人一起修改 然后再将修改的内容提交到Svn中 每一个svn服务器中的数据存储单位叫做存储 但是你不仅仅可以把整个存储当作你维护的内容 也可以将其中的某个分支目录像根存储一样的使用 Svn是严格
  • url相对路径

    一 url相对路径 无需协议名 ip 端口 项目名等 只需请求的路径 例如 项目路径 http localhost 8080 projectName 页面路径 projectName index html 请求路径 api getdetai
  • 几个比较好用的Node.js插件

    一 Nodejs 下安装scss npm i sass g npm i scss g 在静态文件中创建scss目录和css目录 进入到项目目录下执行 sass watch scss css 二 moment 时间格式化 npm i mome
  • luci的国际化(多语言)

    语言的选择在dispatch函数入口出完成 如果配置文件 etc config luci中配置的lang为auto 则根据浏览器所带的信息选择一个合适的语言 否则就使用lang定义的语言 然后使用i18n lua中的setlanguage设