Как перевести сообщение об ошибке безопасности Symfony 4: «Недействительные учетные данные» - PullRequest
0 голосов
/ 21 июня 2019

Я занимаюсь разработкой приложения Vue.js и хочу обработать вход через JSON.Это уже работает, но я хотел бы перевести сообщения об ошибках, например, «Недействительные учетные данные».

Мой translation.yaml файл конфигурации.

framework:
    default_locale: de
    translator:
        default_path: '%kernel.project_dir%/translations'
        fallbacks:
            - en

Компонент Symfony Security уже имеет некоторый немецкий язык(de) переводы в его каталоге переводов:

https://github.com/symfony/security-core/blob/master/Resources/translations/security.de.xlf

<?xml version="1.0"?>
<xliff version="1.2" xmlns="urn:oasis:names:tc:xliff:document:1.2">
    <file source-language="en" datatype="plaintext" original="file.ext">
        <body>
        ...
            <trans-unit id="4">
                <source>Invalid credentials.</source>
                <target>Fehlerhafte Zugangsdaten.</target>
            </trans-unit>
        ...
        </body>
    </file>
</xliff>

Поэтому я скопировал этот файл в мой каталог translations, но все еще отображаются сообщения на английском языке.Также я всегда очищал свой кеш (благодаря ответу Дилана)

1 Ответ

0 голосов
/ 22 июня 2019

Я думаю, что вы можете отображать ключ сообщения, который всегда будет на английском языке. Я предполагаю, что вы должны получить доступ к переводам и перевести ключ сообщения.

В веточке это выглядит так:

 <span class="form-error-message">{{ error.messageKey|trans(error.messageData, 'security') }}</span> 

В Vue.js, я полагаю, вам придется выставлять переводы в JavaScript или JSON.

В соответствии с этой документацией вы также можете выбросить CustomUserMessageAuthenticationException в любой точке вашего LoginAuthenticator и настроить сообщения так, как вы хотите, что позволит переводить ошибки безопасности на серверной части. .

...