web.py 0.3 新手指南 - 实时语言切换

实时语言切换

问题:

如何实现实时语言切换?

解法:

文件: code.py

import os
import sys
import gettext
import web

# File location directory.
rootdir = os.path.abspath(os.path.dirname(__file__))

# i18n directory.
localedir = rootdir + '/i18n'

# Object used to store all translations.
allTranslations = web.storage()

def get_translations(lang='en_US'):
    # Init translation.
    if allTranslations.has_key(lang):
        translation = allTranslations[lang]
    elif lang is None:
        translation = gettext.NullTranslations()
    else:
        try:
            translation = gettext.translation(
                    'messages',
                    localedir,
                    languages=[lang],
                    )
        except IOError:
            translation = gettext.NullTranslations()
    return translation

def load_translations(lang):
    """Return the translations for the locale."""
    lang = str(lang)
    translation  = allTranslations.get(lang)
    if translation is None:
        translation = get_translations(lang)
        allTranslations[lang] = translation

        # Delete unused translations.
        for lk in allTranslations.keys():
            if lk != lang:
                del allTranslations[lk]
    return translation

def custom_gettext(string):
    """Translate a given string to the language of the application."""
    translation = load_translations(session.get('lang'))
    if translation is None:
        return unicode(string)
    return translation.ugettext(string)

urls = (
'/', 'index'
)

render = web.template.render('templates/',
        globals={
            '_': custom_gettext,
            }
        )

app = web.application(urls, globals())

# Init session.
session = web.session.Session(app,
        web.session.DiskStore('sessions'),
        initializer={
            'lang': 'en_US',
            }
        )

class index:
    def GET(self):
        i = web.input()
        lang = i.get('lang', 'en_US')

        # Debug.
        print >> sys.stderr, 'Language:', lang

        session['lang'] = lang
        return render.index()

if __name__ == "__main__": app.run()

模板文件: templates/index.html.

$_('Hello')

不要忘记生成必要的po&mo语言文件。参考: 模板语言中的i18n支持

现在运行code.py:

$ python code.py
http://0.0.0.0:8080/

然后用你喜欢的浏览器访问下面的地址,检查语言是否改变:

http://your_server:8080/
http://your_server:8080/?lang=en_US
http://your_server:8080/?lang=zh_CN

你必须:

  • 确保语言文件(en_US、zh_CN等)可以动态改变。
  • 确保custom_gettext()调用越省资源约好。

参考:

Win11蓝屏KERNEL_DATA_INPAGE_ERROR排查:从事件查看到TdrDelay调优 蓝屏(BSOD)是Windows内核崩溃的典型信号,其中KERNEL_DATA_INPAGE_ERROR意味着系统无法从内存或分页文件读取关键数据,常由显卡驱动、显存换页机制或磁盘故障触发。通过事件查看器快速定位BugCheck与Kernel-Power记录,再用WinDbg分析minidump文件,可以精准锁定崩溃模块。在硬件正常的前提下,调整显卡驱动的TdrDelay超时值、执行清洁安装,并对OpenSquilla的线程池和GPU资源占用进行限流优化,往往能稳定解决高负载AI工具链引发的蓝屏问题。本文以 阅读详情

相关推荐

知识推理——TransE(知识表示、知识嵌入)

知识图谱嵌入/表示方法 TransE

missyoudaisy的博客 1831

python更改语言_如何在运行时在python/gettext中更改语言?

这是我第一次在Python中使用gettext(通常是gettext)。我了解很多事情,我的测试应用程序运行良好:一个命令行参数改变了输出消息的语言。在现在我想让用户在启动时更改语言。在我知道我可以加载许多翻译并在运行时安装其中一个,但是许多字符串已经用旧语言翻译,不会再更改。在有简单的解决方案吗?在import gettextlanguage = "it"t_en = gettext.trans...

weixin_39906499的博客 1980

状态机与RTOS的融合实践:如何避免‘状态爆炸’并提升系统响应

本文探讨了状态机与RTOS的融合实践,重点介绍了如何通过层次化状态机、表驱动设计等策略避免状态爆炸问题,并优化任务调度与事件处理机制,从而显著提升嵌入式系统的响应速度和可靠性。

net55的博客 106

还在用旧版Web3.py?升级到7.0的7个理由让你无法拒绝

掌握Python与区块链智能合约交互的Web3.py 7.0新特性,提升开发效率。支持异步操作、简化合约调用、增强类型提示,适用于DApp开发与链上数据监控。升级理由全解析,值得收藏。

PixelStream的博客 1011

6.2 磁悬浮轴承:软件架构与实现

本文系统阐述了磁悬浮轴承控制系统的软件架构与实现方法。采用分层架构设计,包括硬件抽象层、实时控制内核、控制算法层和应用层,确保系统实时性和可靠性。重点分析了电流环、位置环等关键控制任务的调度策略,比较了不同硬件平台(DSP、ARM、FPGA)的软件实现方案。强调模块化设计、配置化管理等工程实践,并详细介绍了从算法仿真到系统联调的完整开发流程。最后指出严格的测试验证是保证系统性能的关键,需通过多阶段测试评估起浮时间、稳态精度等核心指标。

技术工作者 751

HR离职预测模型实战:可解释、可干预、可落地的三层架构

员工离职预测本质上是组织健康度的早期诊断技术,其核心原理在于从行为、心理与结构数据中识别稳定性衰减信号。该技术的价值不仅在于提升预测准确率,更在于将模糊的‘人才风险’转化为可归因、可干预的具体因子,如工龄阶段、满意度落差、薪酬分位数等。典型应用场景覆盖HRBP主动留任、业务部门梯队预警及HRIS系统智能升级。本文聚焦于构建具备业务可解释性与操作闭环能力的离职预警模型,深度融合HR工作流与机器学习工程实践,尤其强调逻辑回归基线、特征业务化重构及三层递进式架构设计。

赵士杰的博客 385

【区块链开发效率革命】:Web3.py 7.0引入的5个颠覆性功能

提升区块链开发效率,详解Python与区块链智能合约交互的Web3.py 7.0新特性。支持异步操作、简化合约调用、增强类型提示,适用于DApp开发与链上数据监控,大幅提升代码可读性与执行性能,开发更高效稳定,值得收藏。

ProceSeed的博客 818

西门子S7-1200与汇川SV660P伺服速度模式实战:从接线到编程全流程

本文详细解析了西门子S7-1200 PLC与汇川SV660P伺服驱动器在速度模式下的集成实战。内容涵盖从硬件接线、伺服参数关键设置(如电子齿轮比)、博图软件组态到PLC编程的全流程,并提供了故障排查与性能优化指南,帮助工程师快速实现精准、稳定的运动控制。

weixin_29248313的博客 482

Web3 脚本极简入门指南

所谓Web3“科学家”,在大部分语境下,也只不过是用程序代替人工进行合约交互的那群人。在传统领域,顶多也就称得上是“脚本小子”;但在Web3这个蛮荒领域,却被冠以如此高大上的名号,可见行业尚处早期。然而,随着我们徐徐揭开其神秘面纱,却发现并无太大玄机。学好Python,你我皆可登堂入室。👨‍🔬 人均科学家的时代即将来临?任何行业领域内的机会窗口都是稍纵即逝的,越是处于行业早期,越是有较大的先发优势。同时这样的时期也是普通人“逆天改命”最好的时机,是草根阶层实现阶层跨越的绝佳时机。让我们一起迎接。

bigcarp的专栏 2065

MATLAB和S7-1200PLC水箱液位高度PID控制联合仿真(KEPserverOPC通信应用)

SMART PLC 向导PID的详细介绍请查看下面文章链接:S7-200 SMART PLC PID向导详细介绍(如何实现P、PD、PID控制器)-优快云博客文章浏览阅读1k次。这篇博客主要介绍SMART PLC PID向导的使用,PID控制相关的其它内容请查看专栏系列文章,常用链接如下:SMART PLC PID负压控制(过程量为负数)_负压控制pid控制程序_RXXW_Dor的博客-优快云博客1、如何实现PID反作用调节?S7-1200PLC和KEPserver OPC通信-优快云博客。

RXXW_Dor的博客 1780

【云原生】Docker可视化工具Portainer使用详解

Docker可视化工具Portainer使用详解

congge 1万+

实时手机检测-通用WebUI国际化:中英双语切换与多语言提示配置教程

本文介绍了如何在星图GPU平台上自动化部署实时手机检测-通用镜像,实现支持中英双语切换的WebUI界面。该镜像可用于自动化检测图片中的手机,并支持多语言提示,适用于国际化场景下的智能图像分析任务。

weixin_32836713的博客 867

SQL中的时间计算:员工每日工作时长

摘要:本文介绍了一个使用SQL查询计算员工每日工作时长的实用方法。通过分析包含员工打卡记录的数据库表,利用CTE(公共表表达式)将日期分组,计算最早和最晚打卡时间差,最终以"小时:分钟"格式输出工作时长。该方法适用于每日两次打卡的场景,并提示了处理漏打卡等特殊情况时的注意事项,为企业考勤管理提供了有效的数据支持方案。(148字)

m0_74337424的博客 412

【Python与区块链开发新纪元】:Web3.py 7.0十大升级特性全解析

掌握Python与区块链智能合约交互的Web3.py 7.0新特性,提升开发效率。支持异步操作、增强类型提示、简化合约调用,适用于DApp开发与链上数据监控。全面解析升级亮点,值得收藏。

QuickTrans的博客 997

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

Python如何无缝对接以太坊智能合约?(基于Web3.py 7.0的实战秘籍)

掌握Python与区块链智能合约交互的Web3.py 7.0新特性,轻松实现以太坊DApp开发。涵盖合约部署、事件监听与多链支持,提升交互效率与代码稳定性,适合Web3开发者实战应用,值得收藏。

CodePulse的博客 739

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

新手友好:Qwen3-Reranker-0.6B的Web界面快速体验指南

本文介绍了如何在星图GPU平台上自动化部署通义千问3-Reranker-0.6B镜像,快速启用语义重排序能力。该轻量级模型支持中英文混合检索,典型应用于RAG系统中的搜索结果精排,显著提升问答与文档检索的相关性排序效果。

weixin_35750747的博客 425

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

通义千问3-Reranker-0.6B保姆级教程:Gradio界面多语言切换实现

本文介绍了如何在星图GPU平台上自动化部署通义千问3-Reranker-0.6B镜像,并为其Gradio界面实现多语言切换功能。该模型专为文本检索与重排序任务设计,通过简单的代码改造,用户即可构建支持中、英、日等多语言的交互界面,便于国际化团队进行多语言文档的相关性排序与内容管理。

weixin_42601547的博客 986

Web.py Cookbook 简体中文版

欢迎来到web.py 0.3的Cookbook。提醒您注意:某些特性在之前的版本中并不可用。当前开发版本是0.3。 格式 在编排内容时,请尽量使用cookbook格式…如: ###问题:如何访问数据库中的数据? ###解法:使用如下代码… 请注意,网址中不必含有”web”。如”/cookbook/select”,而非”/cookbook/web.select”。 该

justjavac(迷渡) 2140

Pi0机器人控制模型Web演示:新手也能快速上手的完整指南

本文介绍了如何在星图GPU平台上自动化部署Pi0机器人控制模型镜像,实现智能机器人交互功能。通过简单的配置,用户可快速搭建Web演示界面,上传多视角图像并输入自然语言指令,模型即可生成相应的机器人动作控制命令,适用于机器人抓取、移动等基础操作场景。

weixin_42629522的博客 203

零门槛玩转多语言语音合成:CosyVoice 3.0完整指南

还在为寻找简单易用的语音生成工具而烦恼吗?CosyVoice作为一款开源的多语言大语音生成模型,为开发者提供了从推理、训练到部署的全栈解决方案。最新3.0版本在语音自然度、多语言支持和响应速度上都有显著提升,让语音合成变得前所未有的简单。 ## 🎯 项目核心优势 | 功能特点 | 实际价值 | |---------|----------| | **多语言覆盖** | 支持中文、英文、日文、韩

gitblog_00163的博客 1182

3步实现MiniMind多语言支持:从中文到全球的无缝切换指南

MiniMind是一款能够在2小时内完全从0训练26M小参数GPT的大模型项目。本指南将详细介绍如何通过三个简单步骤为MiniMind添加多语言支持,让你的模型能够无缝处理中文、英文等多种语言,轻松实现从中文到全球的跨越。 ## 步骤一:准备多语言训练数据 要实现MiniMind的多语言支持,首先需要准备高质量的多语言训练数据。MiniMind的训练数据路径在项目中通过多个文件进行配置,例如在

gitblog_00174的博客 950

Pi0机器人模型新手指南:Web界面操作全流程解析

本文介绍了如何在星图GPU平台上自动化部署pi0镜像,快速启用具备视觉-语言-动作联合理解能力的机器人模型。通过Web界面上传三视角图像、输入自然语言指令,即可实时生成6自由度机械臂动作增量,典型应用于桌面级抓取任务仿真与机器人控制策略验证。

weixin_29009401的博客 70

Qwen3-ASR-0.6B开源模型教程:Web界面源码app.py关键逻辑解读

本文介绍了如何在星图GPU平台上一键自动化部署Qwen3-ASR-0.6B语音识别镜像,并构建交互式Web界面。该镜像能够高效地将音频文件转换为文字,适用于会议记录、语音转写等实际场景,大幅提升语音处理效率。

weixin_31800911的博客 324

从下载到运行:Pi0模型完整部署指南,适合新手入门

本文介绍了如何在星图GPU平台上自动化部署Pi0视觉-语言-动作流模型。该平台简化了部署流程,用户可快速启动Pi0的Web演示界面,通过上传环境图像并输入自然语言指令,即可体验机器人动作规划与控制的AI应用场景。

weixin_28888459的博客 406

终极Graphite-Web多语言配置指南:轻松实现国际化界面

Graphite-Web是一个高度可扩展的实时绘图系统,通过本指南,您将学习如何轻松配置Graphite-Web实现多语言界面,让全球用户都能获得流畅的使用体验。 ## Graphite-Web国际化基础 Graphite-Web作为一款强大的实时绘图系统,其架构设计中已包含国际化支持的基础组件。从系统架构图中可以清晰看到用户交互层与核心服务层的分离设计,这为多语言支持提供了良好的基础。 [

gitblog_00389的博客 692
上一篇: web.py 0.3 新手指南 - db.select 查询
下一篇: web.py 0.3 新手指南 - RESTful doctesting using app.request
SleepInDelphi
博客等级 码龄19年 32粉丝 388原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值