Mensagem - Global
. Mensagem A API do servidor permite recuperar mensagens localizadas da tabela Mensagem [sys_ui_message] para uma entrada com código igual ao parâmetro de código, chave igual ao parâmetro de mensagem e idioma igual ao idioma da sessão (ou idioma de fallback).
- Desambiguação: Usa uma chave composta de
códigoe.mensagemdistinguir entre cadeias de caracteres idênticas usadas em diferentes contextos (por exemplo, "abrir" como verbo versus substantivo). - Parâmetros nomeados: Permite a interpolação dinâmica de valores em modelos de mensagem usando espaços reservados nomeados.
- Controle de idioma:
GetMessageLangpermite especificar um idioma de destino, útil para cenários como malas diretas ou notificações multilíngues 2 3.
. Mensagem A API é fornecida com o sistema de base padrão no sn_i18n namespace e não requer plug-ins ou funções especiais para acessá-lo. Antes de chamar qualquer método nesta classe, certifique-se de que os registros apropriados de Mensagem [sys_ui_message] existam e sejam preenchidos com correspondência chave e. código campos.
Message.getMessage (Código de cadeia de caracteres, mensagem de cadeia de caracteres, mapear argumentos)
Recupera uma mensagem localizada da tabela Mensagem [sys_ui_message], permitindo desambiguação e inserção de conteúdo dinâmico.
A API oferece suporte a comentários em linha para tradutores, melhorando a clareza e reduzindo a ambiguidade em contextos multilíngues. Os comentários não são usados no campo chave da Mensagem [sys_ui_message], mas a cadeia de caracteres comentada pode ser adicionada ao campo "comented_message". Os valores do parâmetro args são interpolados nos literais de modelo correspondentes na cadeia de caracteres.
| Nome | Tipo | Descrição |
|---|---|---|
| código | Cadeia de caracteres | Obrigatório. Uma chave de desambiguação para distinguir mensagens com texto semelhante, mas significados ou contextos diferentes. Um nome de escopo pode ser usado se a cadeia de caracteres for exclusiva no escopo. Se for necessária desambiguação adicional, então ela pode ser aumentada. Por exemplo, "Aberto" pode significar um status ou uma ação, e o parâmetro de código ajuda a esclarecer qual. Se exigirmos 2 mensagens com a mesma cadeia de caracteres, mas maiúsculas diferentes, o script será o seguinte: |
| mensagem | Cadeia de caracteres | Opcional. A cadeia de caracteres de mensagem padrão a ser usada se nenhuma versão localizada for encontrada. Corresponde a chave Na tabela Mensagem [sys_ui_message]. |
| args | JSON | Opcional. Um mapa de parâmetros nomeados usados para inserir valores dinamicamente na mensagem. As chaves correspondem aos Parâmetros Nomeados na mensagem. Os valores podem ser literais de cadeia de caracteres ou variáveis/constantes que estão no escopo. Por exemplo, se sua mensagem for "Olá, João!", você poderá passar "name: "João" para renderizar "Olá, João!". |
| Tipo | Descrição |
|---|---|
| Cadeia de caracteres |
Retorna um valor da tabela Mensagem [sys_ui_message] em que:
Se nenhuma correspondência for encontrada, todos os idiomas de fallback serão verificados quanto a uma correspondência (consulte Set a fallback language). Se uma correspondência ainda não for encontrada, o valor da mensagem (segundo parâmetro) será retornado e será removido dos comentários. Os parâmetros nomeados são substituídos pelos valores especificados no mapa passado no parâmetro args. |
O exemplo a seguir chama o método getMessage() para desambiguar um registro existente na tabela Mensagem [sys_ui_message] em francês, que é o idioma da sessão do usuário. O bloco de código a seguir contém o conteúdo da mensagem.
<?xml version="1.0" encoding="UTF-8"?>
<xml>
<sys_ui_message>
<code>exampleCode</code>
<key>User {username} has been added as {role}</key>
<language>fr</language>
<message>L'utilisateur {username} a été ajouté en tant que {role}</message>
</sys_ui_message>
</xml>
O exemplo executa o script de API com um idioma de sessão francês:
//defines a user object using the name and role properties
var user = {
name: "Fred Luddy",
role: "maint"
}
//retrieves a localized message where code: "exampleCode" is the disambiguation key, message: User {username} has been added as {role}" is the default message template, and args: username: user.name, role: user.role } is a map of named parameters that will replace {username} and {role} in the message.
gs.info(sn_i18n.Message.getMessage("exampleCode","User {username} has been added as {role}",{username: user.name, role: user.role}));
A saída contém a mensagem em francês:
//English: User Fred Luddy has been added as maint
L'utilisateur Fred Luddy a été ajouté en tant que maint
Uso básico sem parâmetros nomeados
// Retrieves a localized message using only code and default message
var message = sn_i18n.Message.getMessage("status.open", "Open");
gs.info(message); // Output depends on user's session language
Este exemplo usa code( "satus.open" ) para desambiguar a mensagem, e. message( "Open") como fallback se nenhuma tradução for encontrada.
Uso básico com parâmetros nomeados
/ Retrieves a localized message with named parameters
var message = sn_i18n.Message.getMessage(
"greeting.personal",
"Hello, ${name}! You have ${count} new messages.",
{ name: "John", count: 5 }
);
gs.info(message); // Output: "Hello, John! You have 5 new messages." (localized if available)
Este exemplo usa code( "greeting.personal" distingue esta saudação de outras, e. messageé um modelo com espaços reservados. args( (Nome: "John", contagem: 5) preenche os espaços reservados.
Message.getMessageLang(Código de cadeia de caracteres, mensagem de cadeia de caracteres, argumentos de mapa, idioma de cadeia de caracteres)
Recupera uma mensagem localizada na Mensagem [sys_ui_message] em um determinado idioma, independentemente do idioma da sessão do usuário atual.
A API oferece suporte a comentários em linha para tradutores, melhorando a clareza e reduzindo a ambiguidade em contextos multilíngues. Os comentários não são usados no campo chave da Mensagem [sys_ui_message], mas a cadeia de caracteres comentada pode ser adicionada ao campo "comented_message". Os valores do parâmetro args são interpolados nos literais de modelo correspondentes na cadeia de caracteres.
- Substituição do idioma da sessão: Útil para enviar notificações, e-mails ou relatórios em um idioma específico.
- Suporte multilíngue: Ideal para aplicações que atendem usuários em diferentes regiões.
- Testar traduções: Ajuda os desenvolvedores a visualizar como as mensagens aparecem em outros idiomas sem alternar as configurações do usuário.
| Nome | Tipo | Descrição |
|---|---|---|
| código | Cadeia de caracteres | Obrigatório. Uma chave de desambiguação para distinguir mensagens com texto semelhante, mas significados ou contextos diferentes. Um nome de escopo pode ser usado se a cadeia de caracteres for exclusiva no escopo. Se for necessária desambiguação adicional, então ela pode ser aumentada. Por exemplo, "Aberto" pode significar um status ou uma ação, e o parâmetro de código ajuda a esclarecer qual. Se exigirmos 2 mensagens com a mesma cadeia de caracteres, mas maiúsculas diferentes, o script será o seguinte: |
| mensagem | Cadeia de caracteres | Opcional. A cadeia de caracteres de mensagem padrão a ser usada se nenhuma versão localizada for encontrada. Corresponde a chave Na tabela Mensagem [sys_ui_message]. |
| args | JSON | Opcional. Um mapa de parâmetros nomeados usados para inserir valores dinamicamente na mensagem. As chaves correspondem aos Parâmetros Nomeados na mensagem. Os valores podem ser literais de cadeia de caracteres ou variáveis/constantes que estão no escopo. Por exemplo, se sua mensagem for "Olá, João!", você poderá passar "name: "João" para renderizar "Olá, João!". |
| idioma | Cadeia de caracteres | Opcional. Idioma para retornar a mensagem. Formato: Código do idioma BCP-47 Padrão: Idioma da sessão |
| Tipo | Descrição |
|---|---|
| Cadeia de caracteres |
Retorna um valor da tabela Mensagem [sys_ui_message] em que:
Se nenhuma correspondência for encontrada, todos os idiomas de fallback serão verificados quanto a uma correspondência (consulte Set a fallback language). Se uma correspondência ainda não for encontrada, o valor da mensagem (segundo parâmetro) será retornado e será removido dos comentários. Os parâmetros nomeados são substituídos pelos valores especificados no mapa passado no parâmetro args. |
O exemplo a seguir chama o método getMessageLang() para traduzir um registro existente na tabela Mensagem [sys_ui_message] para o japonês. O bloco de código a seguir contém o conteúdo da mensagem.
<?xml version="1.0" encoding="UTF-8"?>
<xml>
<sys_ui_message>
<code>exampleCode</code>
<key>User {username} has been added as {role}</key>
<language>ja</language>
<message> {username} が {role} として追加されました。</message>
</sys_ui_message>
</xml>
O exemplo executa o script de API com um idioma de sessão diferente do japonês:
var user = {
name: "Fred Luddy",
role: "maint"
}
gs.info(sn_i18n.Message.getMessageLang("exampleCode","User {username} has been added as {role}",{username: user.name, role: user.role}, "ja"));
A saída contém a mensagem em japonês:
Fred Luddy が maint として追加されました
Os exemplos a seguir usam parâmetros nomeados ("username", "role") para conteúdo dinâmico, especificam um idioma de destino usando códigos de idioma ISO ("fr", "ja", "es") e garantem fallback para a mensagem padrão se nenhuma tradução for encontrada.
Notificação em francês:
var user = {
name: "Fred Luddy",
role: "maint"
};
var message = sn_i18n.Message.getMessageLang(
"user.added",
"User ${username} has been added as ${role}",
{ username: user.name, role: user.role },
"fr" // French
);
gs.info(message); // Output: "L'utilisateur Fred Luddy a été ajouté en tant que maint" (if translation exists)
Notificação em japonês:
var user = {
name: "Hanako Yamada",
role: "admin"
};
var message = sn_i18n.Message.getMessageLang(
"user.added",
"User ${username} has been added as ${role}",
{ username: user.name, role: user.role },
"ja" // Japanese
);
gs.info(message); // Output: "ユーザー Hanako Yamada が admin として追加されました" (if translation exists)
Notificação em espanhol:
var user = {
name: "Carlos Ruiz",
role: "editor"
};
var message = sn_i18n.Message.getMessageLang(
"user.added",
"User ${username} has been added as ${role}",
{ username: user.name, role: user.role },
"es" // Spanish
);
gs.info(message); // Output: "El usuario Carlos Ruiz ha sido añadido como editor" (if translation exists)