Maison >développement back-end >Golang >Explication détaillée du traitement d'internationalisation et prise en charge multilingue du framework Gin

Explication détaillée du traitement d'internationalisation et prise en charge multilingue du framework Gin

王林
王林original
2023-06-22 10:06:482624parcourir

Le framework Gin est un framework Web léger qui se caractérise par sa rapidité et sa flexibilité. Pour les applications qui doivent prendre en charge plusieurs langues, le framework Gin peut facilement effectuer un traitement d'internationalisation et une prise en charge multilingue. Cet article développera le traitement d'internationalisation et la prise en charge multilingue du framework Gin.

  1. Internationalisation

Lors du processus de développement, afin de prendre en compte les utilisateurs de différentes langues, il est nécessaire d'internationaliser l'application. En termes simples, le processus d'internationalisation consiste à modifier et convertir de manière appropriée les fichiers de ressources, les codes, les textes et autres contenus de l'application pour répondre aux besoins des utilisateurs dans différents environnements linguistiques.

Dans le framework Gin, le traitement d'internationalisation peut être réalisé en appelant la bibliothèque gin-i18n. gin-i18n est une bibliothèque pour l'internationalisation du framework Gin. Elle fournit des fonctions telles que le traitement de fichiers de ressources multilingues et la traduction multilingue. Voici les étapes à suivre pour effectuer l'internationalisation dans le cadre Gin.

1.1 Préparer les fichiers de langue

Tout d'abord, vous devez préparer les fichiers de langue dans l'application. Le format des fichiers de langue est généralement JSON ou YAML, qui sont utilisés respectivement pour stocker des paires clé-valeur ou des objets. Voici un exemple de fichier de langue :

{
  "hello": "你好",
  "bye": "再见"
}

Lorsque l'application doit afficher "Bonjour", le texte de traduction correspondant peut être obtenu via la touche "bonjour".

1.2 Importer la bibliothèque gin-i18n

Ensuite, importez la bibliothèque gin-i18n dans l'application. La bibliothèque gin-i18n peut être obtenue via la commande go get :

go get github.com/suisrc/gin-i18n

1.3 Initialisation de l'instance i18n

Ensuite, vous devez initialiser l'instance i18n et définir le répertoire du fichier de langue et la langue par défaut.

import (
    "github.com/gin-gonic/gin"
    "github.com/suisrc/gin-i18n/i18n"
)

func main() {
    router := gin.Default()

    // 初始化i18n
    if err := i18n.InitTranslations("conf/locales"); err != nil {
        log.Fatal("加载语言文件失败:", err)
    }

    // 设置默认语言
    i18n.SetDefaultLanguage("zh-CN")

    // ...
}

Dans le code ci-dessus, lors de l'initialisation de l'instance i18n, vous devez spécifier le répertoire du fichier de langue. On suppose ici que le répertoire du fichier de langue est "conf/locales". Ensuite, utilisez la méthode i18n.SetDefaultLanguage() pour définir la langue par défaut sur « zh-CN ». Le « zh-CN » ici est le nom de code chinois.

1.4 Obtenir le texte traduit

Enfin, lorsque le texte doit être traduit, le texte traduit peut être obtenu via la méthode i18n.Format(). Par exemple :

func main() {
    router := gin.Default()

    // ...

    router.GET("/hello", func(c *gin.Context) {
        name := c.Query("name")
        message := i18n.Format("hello") + " " + name // 获取翻译文本
        c.String(http.StatusOK, message)
    })

    // ...
}

Dans le code ci-dessus, lorsque la route est "/hello", la valeur du paramètre URL "name" est obtenue, et la méthode i18n.Format() est utilisée pour obtenir le texte traduit avec la clé "Bonjour". Enfin, utilisez la méthode c.String() pour renvoyer le texte traduit.

  1. Support multilingue

En plus du traitement d'internationalisation, le framework Gin prend également en charge le support multilingue. La prise en charge multilingue permet d'obtenir le texte traduit correspondant en fonction de la langue préférée de l'utilisateur. Vous trouverez ci-dessous les étapes à suivre pour implémenter la prise en charge multilingue dans le framework Gin.

2.1 Préparer les fichiers de langue

Tout d'abord, vous devez préparer plusieurs fichiers de langue pour l'application. Le contenu de chaque fichier de langue est le même que celui du fichier de langue dans le processus d'internationalisation. Par exemple :

conf/locales/
  ├── en-US.json
  └── zh-CN.json

2.2 Importez la bibliothèque gin-i18n

Ensuite, importez la bibliothèque gin-i18n dans l'application.

import (
    "github.com/gin-gonic/gin"
    "github.com/suisrc/gin-i18n/i18n"
)

func main() {
    router := gin.Default()

    // 导入gin-i18n库

    // ...
}

2.3 Initialiser l'instance i18n

De même, dans les applications qui doivent implémenter une prise en charge multilingue, vous devez initialiser l'instance i18n et définir le répertoire des fichiers de langue et la langue par défaut. Cependant, ici, plusieurs langues doivent être configurées afin qu'elles puissent être sélectionnées en fonction de la langue préférée de l'utilisateur.

func main() {
    router := gin.Default()

    // 初始化i18n
    i18n.InitMultiLanguages("conf/locales", []string{"zh-CN", "en-US"})

    // ...
}

Dans le code ci-dessus, lors de l'initialisation de l'instance i18n, vous devez spécifier les noms de code de toutes les langues à utiliser lors de la définition de la langue préférée.

2.4 Obtenir la langue préférée de l'utilisateur

Ensuite, lorsque vous devez obtenir la langue préférée de l'utilisateur, vous pouvez utiliser la méthode GetHeader() de l'objet gin.Context pour obtenir l'en-tête de requête « Accept-Language ». Par exemple :

func main() {
    router := gin.Default()

    // ...

    router.GET("/hello", func(c *gin.Context) {

        // 获取用户首选语言
        lang := c.GetHeader("Accept-Language")
        bestlang := i18n.ParseLang(lang)

        // 获取键为“hello”的翻译文本
        message := i18n.Format("hello", bestlang)

        c.String(http.StatusOK, message)
    })

    // ...
}

Dans le code ci-dessus, utilisez la méthode c.GetHeader() pour obtenir la valeur de l'en-tête de requête "Accept-Language", puis appelez la méthode i18n.ParseLang() pour analyser le code de langue. Cette méthode comparera toutes les langues en fonction de la langue préférée de l'utilisateur et renverra le code de langue le mieux correspondant. Enfin, utilisez la méthode i18n.Format() pour obtenir le texte traduit.

Résumé

Cet article présente comment implémenter l'internationalisation et la prise en charge multilingue dans le framework Gin. Dans le framework Gin, vous pouvez utiliser la bibliothèque gin-i18n pour implémenter ces fonctions. Les étapes spécifiques incluent : la préparation des fichiers de langue, l'importation de la bibliothèque gin-i18n, l'initialisation de l'instance i18n et la définition de la langue par défaut, l'obtention du texte traduit et l'obtention la langue préférée de l'utilisateur. Grâce à ces étapes, l'application Gin peut facilement répondre aux besoins des utilisateurs dans différents environnements linguistiques.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn