Oracle APEX 24.2 新特性 - 文本消息增强

本文翻译自:https://blogs.oracle.com/apex/post/whats-new-in-apex-242-text-message-enhancements

文本消息是一个强大的功能,可以用来构建带有替换变量的可翻译文本字符串,这些字符串随后可以从PL/SQL包、过程和函数中调用。在APEX应用程序中使用文本消息具有如下好处:

  • 动态多语言应用翻译
  • 集中管理文本
  • 动态UI文本和提示
  • 无缝更新内容变更
  • 本地化电子邮件和通知
  • 大型应用程序的改进可维护性

Oracle APEX 24.2 中,文本消息得到了进一步增强。现在,您可以:

  • 添加有意义的占位符
  • 编写更简短的替换语法
  • 忽略前缀
  • 直接指定参数值
  • 使用页面设计器中的文本消息选择器

让我们深入了解如何在APEX应用程序中使用文本消息。

创建带有有意义的占位符的文本消息

现在,您可以使用有意义的占位符,如 %name%quantity,来代替位置参数,如%0 和%1。这不仅使代码更容易阅读,还有助于解决添加内容可能改变变量位置等常见问题。命名约定有助于调试并更好地理解输出。

创建文本消息,请前往 共享组件全球化文本消息 并点击 创建文本消息 或点击现有文本消息进行编辑。

在“创建/编辑文本消息”对话框中,输入以下属性:

姓名:TEXT_MESSAGE
语言:English (en)
文本:要显示的文本消息

图1 创建一个文本消息

如何应用 APEX 24.2 中的文本消息?

创建文本消息后,它就准备好在您的应用程序中使用。您可以通过将其作为以下内容集成到服务器端和客户端代码中来利用和访问文本消息:

  • 静态内容
  • PL/SQL代码
  • JavaScript代码

使用静态内容处理文本消息

让我们考虑一个场景,即您正在构建一个在线购物应用程序,并希望使用文本消息显示订单确认。一个简单的选项是创建一个类型为 静态值 的页面项,其中包含可翻译的消息,这些消息可以轻松地在屏幕上显示。

步骤

  1. 创建一个 仅显示 页面项。
  2. 在“”下
    1. 对于类型,选择 静态值
    2. 静态值,请输入以下代码:
1
&{SALES_CONFIRMATION user="John" quantity="1" product="Laptop"}.

图2 添加一个文本消息到页面控件上

这是一个简单的实现,将提供以下输出:

图2.1 来自文本消息控件的输出样例

使用PL/SQL处理文本消息

您可以使用PL/SQL代码与文本消息结合,通过应用来自 Oracle APEX API 的 apex_lang.get_message 函数,轻松创建可定制的消息输出,从而提高可读性和安全性。为了展示这一点,让我们创建一个计算示例。

步骤

  1. 在您的 APEX 页面上,导航到 渲染树
  2. 在“标题之前”上右键单击并选择“创建计算”。
  3. 在属性编辑器中,输入/选择以下内容:
    1. 对于 类型,选择 表达式
    2. 为语言选择 PL/SQL
    3. 对于 PL/SQL 表达式,请输入以下代码:
1
2
3
4
5
6
apex_lang.get_message( 'SALES_CONFIRMATION'
, apex_t_varchar2( 'user', :P6_CUSTOMER
, 'quantity', 1
, 'product', 'Laptop'
)
)

注意:这是之前使用静态内容创建的相同文本消息。观察结果保持不变。

图3 使用PL/SQL编写文本消息

使用JavaScript处理文本消息

某些应用可能需要执行客户端代码的消息。这可以通过在 JavaScript 中应用文本消息来实现。

注意:为了使此功能正常工作,您应该在“创建文本消息”对话框中启用JavaScript选项

图4 启用Javascript选项处理文本消息

步骤

  • 创建一个 APEX 按钮
  • 右键单击按钮并选择 创建点击动态动作
  • 动作 显示 将默认出现,将其更改为 执行JavaScript代码 动作。
  • 请注意,在您的 JavaScript 代码中,您将使用 apex.lang.formatMessage 函数。
  • 当 JavaScript 代码执行时,文本消息以一个 APEX Alert 对话框的形式显示。
1
2
3
4
5
6
7
8
9
// Text Message Data 
const textMessage = 'SALES_CONFIRMATION'
const textMessageParameters = { user: 'John', quantity: 1, product: 'Laptop' }

// Calling the formatted text message from the JS API
const message = apex.lang.formatMessage(textMessage, textMessageParameters);

// Showing the text with in a alert
apex.message.alert(message, null, {style: "success", iconClasses: "fa fa-check fa-2x"});

图5 添加文本消息到Javascript中

图6 在alert对话框中显示文本消息

结论

文本消息是多功能组件,可以从服务器端和客户端代码中利用和访问。从维护大型应用程序到本地化电子邮件和通知,文本消息有助于维护单一事实来源和集中化文本管理。在这篇博客文章中,您看到了使用文本消息与静态内容、PL/SQL表达式和JavaScript代码的示例。

本文标题:Oracle APEX 24.2 新特性 - 文本消息增强

文章作者:王方钢 / Kenny Wang

发布时间:2025年02月09日 - 11:02

最后更新:2025年02月09日 - 11:02

原始链接:https://wangfanggang.com/Oracle/Oracle-APEX/apex-242-text-message-enhancements/

许可协议: 署名-非商业性使用-禁止演绎 4.0 国际 转载请保留原文链接及作者。

王方钢 / Kenny Wang wechat
0%