logologo
开始
手册
开发
插件
API
首页
English
简体中文
日本語
한국어
Español
Português
Deutsch
Français
Русский
Italiano
Türkçe
Українська
Tiếng Việt
Bahasa Indonesia
ไทย
Polski
Nederlands
Čeština
العربية
עברית
हिन्दी
Svenska
开始
手册
开发
插件
API
首页
logologo
RunJS 概述
导入模块
容器内渲染

全局变量

window
document
navigator

ctx

ctx.blockModel
ctx.collection
ctx.collectionField
ctx.dataSource
ctx.dataSourceManager
ctx.element
ctx.exit()
ctx.exitAll()
ctx.filterManager
ctx.form
ctx.getModel()
ctx.getValue()
ctx.getVar()
ctx.i18n
ctx.importAsync()
ctx.initResource()
ctx.libs
ctx.location
ctx.logger
ctx.makeResource()
ctx.message
ctx.modal
ctx.model
ctx.notification
ctx.off()
ctx.on()
ctx.openView()
ctx.render()
ctx.request()
ctx.requireAsync()
ctx.resource
ctx.route
ctx.router
ctx.setValue()
ctx.sql
ctx.t()
ctx.view
Previous Pagectx.sql
Next Pagectx.view

#ctx.t()

在 RunJS 中用于翻译文案的 i18n 快捷函数,基于当前上下文的语言设置。适合按钮、标题、提示等内联文案的国际化。

#类型定义

t(key: string, options?: Record<string, any>): string

#参数

参数类型说明
keystring翻译 key 或带占位符的模板(如 Hello {{name}}、{{count}} rows)
optionsobject可选。插值变量(如 { name: '张三', count: 5 }),或 i18n 选项(如 defaultValue、ns)

#返回值

  • 返回翻译后的字符串;若 key 无对应翻译且未提供 defaultValue,可能返回 key 本身或经插值后的字符串。

#说明

  • 支持 i18next 风格插值:在 key 中使用 {{变量名}},在 options 中传入同名变量即可替换。
  • 语言由当前上下文(如用户语言、应用 locale)决定。
  • 激活本地化插件后,ctx.t 使用的文案会自动提取到本地化管理列表,便于统一维护和翻译。

#示例

#简单 key

ctx.t('Submit');
ctx.t('No data');

#带插值变量

const text = ctx.t('Hello {{name}}', { name: ctx.user?.nickname || 'Guest' });
ctx.render(`<div>${text}</div>`);
ctx.message.success(ctx.t('Processed {{count}} rows', { count: rows.length }));

#相对时间等动态文案

if (minutes < 60) return ctx.t('{{count}} minutes ago', { count: minutes });
if (hours < 24) return ctx.t('{{count}} hours ago', { count: hours });

#指定命名空间(ns)

翻译资源按命名空间划分时,可用 ns 指定从哪个命名空间取 key:

// 从指定命名空间取 key
ctx.t('Submit', { ns: 'myModule' });

// 从多个命名空间依次查找(先 myModule,再 common)
ctx.t('Save', { ns: ['myModule', 'common'] });

// 带插值且指定命名空间
ctx.t('Hello {{name}}', { name: 'Guest', ns: 'myModule' });