diff --git a/global/apiValidator.go b/global/apiValidator.go index 4862044..f5d31c1 100644 --- a/global/apiValidator.go +++ b/global/apiValidator.go @@ -4,11 +4,13 @@ import ( "github.com/gin-gonic/gin" "github.com/go-playground/locales/en" "github.com/go-playground/locales/ko" + "github.com/go-playground/locales/ru" "github.com/go-playground/locales/zh_Hans_CN" ut "github.com/go-playground/universal-translator" "github.com/go-playground/validator/v10" en_translations "github.com/go-playground/validator/v10/translations/en" + ru_translations "github.com/go-playground/validator/v10/translations/ru" zh_translations "github.com/go-playground/validator/v10/translations/zh" "reflect" ) @@ -20,12 +22,14 @@ func ApiInitValidator() { enT := en.New() cn := zh_Hans_CN.New() koT := ko.New() + ruT := ru.New() - uni := ut.New(enT, cn, koT) + uni := ut.New(enT, cn, koT, ruT) enTrans, _ := uni.GetTranslator("en") zhTrans, _ := uni.GetTranslator("zh_Hans_CN") koTrans, _ := uni.GetTranslator("ko") + ruTrans, _ := uni.GetTranslator("ru") err := zh_translations.RegisterDefaultTranslations(validate, zhTrans) if err != nil { @@ -35,11 +39,16 @@ func ApiInitValidator() { if err != nil { panic(err) } + //validate没有ko的翻译,使用zh的翻译 err = zh_translations.RegisterDefaultTranslations(validate, koTrans) if err != nil { panic(err) } + err = ru_translations.RegisterDefaultTranslations(validate, ruTrans) + if err != nil { + panic(err) + } validate.RegisterTagNameFunc(func(field reflect.StructField) string { label := field.Tag.Get("label") @@ -90,7 +99,6 @@ func ApiInitValidator() { } return errList } - } func getTranslatorForLang(lang string) ut.Translator { switch lang { @@ -104,6 +112,9 @@ func getTranslatorForLang(lang string) ut.Translator { case "ko": trans, _ := Validator.UT.GetTranslator("ko") return trans + case "ru": + trans, _ := Validator.UT.GetTranslator("ru") + return trans case "en": fallthrough default: diff --git a/resources/i18n/ru.toml b/resources/i18n/ru.toml new file mode 100644 index 0000000..fc0b430 --- /dev/null +++ b/resources/i18n/ru.toml @@ -0,0 +1,129 @@ +[Test] +description = "test" +one = "тест 1 {{.P0}}" +other = "тест 2 {{.P0}}" + +[ParamsError] +description = "Params validation failed." +one = "Ошибка параметра." +other = "Ошибка параметра." + +[OperationFailed] +description = "OperationFailed." +one = "Операция не удалась." +other = "Операция не удалась." + +[OperationSuccess] +description = "OperationSuccess." +one = "Операция успешна." +other = "Операция успешна." + +[ItemExists] +description = "Item already exists." +one = "Данные уже существуют." +other = "Данные уже существуют." + +[ItemNotFound] +description = "Item not found." +one = "Данные не найдены." +other = "Данные не найдены." + +[NoAccess] +description = "No access." +one = "Нет доступа." +other = "Нет доступа." + +[UsernameOrPasswordError] +description = "Username or password error." +one = "Неправильное имя пользователя или пароль." +other = "Неправильное имя пользователя или пароль." + +[SystemError] +description = "System error." +one = "Системная ошибка." +other = "Системная ошибка." + +[ConfigNotFound] +description = "Config not found." +one = "Конфигурация не найдена." +other = "Конфигурация не найдена." + +[OauthExpired] +description = "Oauth expired." +one = "Авторизация истекла, пожалуйста, авторизуйтесь снова." +other = "Авторизация истекла, пожалуйста, авторизуйтесь снова." + +[OauthFailed] +description = "Oauth failed." +one = "Авторизация не удалась." +other = "Авторизация не удалась." + +[OauthHasBindOtherUser] +description = "Oauth has bind other user." +one = "Авторизация уже привязана к другому пользователю." +other = "Авторизация уже привязана к другому пользователю." + +[ParamIsEmpty] +description = "Param is empty." +one = "{{.P0}} пуст." +other = "{{.P0}} пуст." + +[BindFail] +description = "Bind fail." +one = "Привязка не удалась." +other = "Привязка не удалась." + +[BindSuccess] +description = "Bind success." +one = "Привязка успешна." +other = "Привязка успешна." + +[OauthHasBeenSuccess] +description = "Oauth has been success." +one = "Авторизация уже выполнена успешно." +other = "Авторизация уже выполнена успешно." + +[OauthSuccess] +description = "Oauth success." +one = "Авторизация успешна." +other = "Авторизация успешна." + +[OauthRegisterSuccess] +description = "Oauth register success." +one = "Регистрация авторизации успешна." +other = "Регистрация авторизации успешна." + +[OauthRegisterFailed] +description = "Oauth register failed." +one = "Ошибка регистрации авторизации." +other = "Ошибка регистрации авторизации." + +[GetOauthTokenError] +description = "Get oauth token error." +one = "Не удалось получить токен авторизации." +other = "Не удалось получить токен авторизации." + +[GetOauthUserInfoError] +description = "Get oauth user info error." +one = "Не удалось получить информацию о пользователе авторизации." +other = "Не удалось получить информацию о пользователе авторизации." + +[DecodeOauthUserInfoError] +description = "Decode oauth user info error." +one = "Не удалось декодировать информацию о пользователе авторизации." +other = "Не удалось декодировать информацию о пользователе авторизации." + +[OldPasswordError] +description = "Old password error." +one = "Неправильный старый пароль." +other = "Неправильный старый пароль." + +[DefaultGroup] +description = "Default group." +one = "Группа по умолчанию" +other = "Группа по умолчанию" + +[ShareGroup] +description = "Share group." +one = "Общая группа" +other = "Общая группа"