Votre logique de fulfillment peut utiliser la chaîne de paramètres régionaux qu'elle reçoit dans chaque requête répondre aux utilisateurs. Ce guide vous explique comment utiliser des outils des bibliothèques de localisation dans une fonction Cloud et localisées.
Bibliothèques de localisation
Voici quelques bibliothèques utiles pour vous aider générer des réponses personnalisées pour des paramètres régionaux spécifiques:
- Usage général: I18n-node (notre exemples d'extraits de code utilisent cette bibliothèque)
- Usage général: format.js
- Localisation du fuseau horaire/de l'heure: moment.js (notre exemples d'extraits de code utilisent cette bibliothèque)
- Monnaie/devise: numeral.js
Créer des réponses localisées
Cette section vous explique comment créer des fichiers de ressources de chaîne localisées contenant des chaînes localisées et comment utiliser ces fichiers de ressources Fonction pour le fulfillment Firebase.
Pour créer des réponses localisées:
- Dans le même répertoire que vos fichiers
package.json
etindex.js
, créez un répertoirelocales
pour vos fichiers de chaînes localisées. Nous y reviendrons en tant que<project-dir>/functions/locales
. Créez un fichier de ressources contenant les chaînes localisées pour tous les paramètres régionaux qui que vous souhaitez prendre en charge. Par exemple, si vous souhaitez prendre en charge
en-US
,en-GB
, etde-DE
paramètres régionaux avec des messages d'accueil et de date localisés, ces fichiers peut se présenter comme suit:<project-dir>/functions/locales/en-US.json
{ "WELCOME_BASIC": "Hello, welcome!", "DATE": "The date is %s" }
<project-dir>/functions/locales/en-GB.json
{ "WELCOME_BASIC": "Hello, welcome!", "DATE": "The date is %s" }
<project-dir>/functions/locales/de-DE.json
{ "WELCOME_BASIC": "Hallo und willkommen!", "DATE": "Das Datum ist %s" }
Dans le fichier
package.json
, déclarez les bibliothèques "i18n-node" et "Moment" en tant que dépendances:{ ... "dependencies": { "actions-on-google": "^2.7.0", "firebase-admin": "^7.2.1", "firebase-functions": "^2.2.1", "i18n": "^0.8.3", "moment": "^2.22.1" } }
Dans le fichier
index.js
, déclarez les dépendances pour le nœud i18n et le moment. bibliothèques:const i18n = require('i18n'); const moment = require('moment');
Dans le fichier
index.js
, configurez le nœud i18n avec les paramètres régionaux pris en charge:i18n.configure({ locales: ['en-US', 'en-GB', 'de-DE'], directory: __dirname + '/locales', defaultLocale: 'en-US' });
Définissez les paramètres régionaux des bibliothèques à l'aide de
conv.user.locale
à partir de la bibliothèque cliente. .app.middleware((conv) => { i18n.setLocale(conv.user.locale); moment.locale(conv.user.locale); });
Pour renvoyer une réponse localisée, appelez
ask()
avec une chaîne localisée. renvoyées par i18n. Cet extrait contient également une fonction qui utilise le moment pour renvoyer une date localisée:app.intent('Default Welcome Intent', (conv) => { // must not be async for i18n conv.ask(i18n.__('WELCOME_BASIC')); }); app.intent('date', (conv) => { // must not be async for i18n conv.ask(i18n.__('DATE', moment().format('LL'))); });
Voici un exemple de fichier index.js complet:
'use strict'; const {dialogflow} = require('actions-on-google'); const functions = require('firebase-functions'); const i18n = require('i18n'); const moment = require('moment'); i18n.configure({ locales: ['en-US', 'en-GB', 'de-DE'], directory: __dirname + '/locales', defaultLocale: 'en-US' }); const app = dialogflow({debug: true}); app.middleware((conv) => { i18n.setLocale(conv.user.locale); moment.locale(conv.user.locale); }); app.intent('Default Welcome Intent', (conv) => { // must not be async for i18n conv.ask(i18n.__('WELCOME_BASIC')); }); app.intent('date', (conv) => { // must not be async for i18n conv.ask(i18n.__('DATE', moment().format('LL'))); }); exports.demoAction = functions.https.onRequest(app);