O Bash imita a tradução específica de Locale de C?

3

O manual de Bash menciona que

3.1.2.5 Locale-Specific Translation

A double-quoted string preceded by a dollar sign (‘$’) will cause the string to be translated according to the current locale. If the current locale is C or POSIX, the dollar sign is ignored. If the string is translated and replaced, the replacement is double-quoted.

Essa maneira de especificar uma string literal existe na linguagem C ou em alguma biblioteca C?

O bash imita dessa maneira a partir de C?

    
por Ben 20.11.2018 / 00:09

1 resposta

8

$"..." é a maneira de Bash acessar as traduções do GNU gettext . No código C, geralmente seria gettext("...") ou _("...") . O Bash usa o catálogo de mensagens padrão do sistema; um aplicativo C também poderia carregar qualquer catálogo que desejasse usar.

A sintaxe $" é uma extensão Bash para se assemelhar à sintaxe de expansão de parâmetro existente, e suponho particularmente que o $' ANSI-C citando foi tirada do ksh e que pode em POSIX no futuro. A linguagem C não suporta ou tem um paralelo para a própria sintaxe.

    
por 20.11.2018 / 00:32

Tags