5

보기 결과에 Firebase 오류 메시지 (error.message)가 영어 오류 설명으로 표시됩니다 (예 : 사용자 인증 정보에 오류가있는 경우 인증 오류).다른 언어로 된 Firebase 오류 메시지?

어떻게 메시지를 다른 언어로 표시 하시겠습니까 (최상의 경우 : 전화의 언어로 표시)?

답변

2

Firebase의 오류 메시지는 응용 프로그램 개발자를 대상으로하므로 영문으로 만 제공됩니다. 설명서를 제공하는 것과 동일한 언어로 제공하고 싶지만 사용자의 모든 언어를 다루지는 않습니다.

코드에서 오류를 감지하고 오류를 중앙 시스템에 기록하여 문제를 검사 한 다음 사용자에게 현지화 된 오류 메시지를 표시 할 수 있습니다.

내가 아는 한 Angular에서 표준화 된 방법이 없다. 하지만 있다면 Firebase와 관련이 없습니다.

+1

가장 좋은 대답은 오류 코드를 메시지 ID로 사용하고 문자열/문구 ID를 현지화하는 표준 방식으로 번역을 만드는 것일 수 있습니다. – Kato

+2

@ 프랭크 : 즉, 모든 개발자는 자신의 "오류 메시지 번역"을 수행합니까? 대부분의 오류는 매우 일반적이어야합니다 (예 : 인증에서 : "emailaddress does not exist", "wrong password"등). 번역을 한 번 해보고 여러 프로젝트에서 이것을 사용할 수 있을까요? –

+0

@Kato : 나는 너를 따라갈 수 없네 - 미안해. "문자열/문구 ID 지역화 표준 방법으로 번역 만들기"란 무엇을 의미합니까? 둘 다 감사합니다! –

1

지금은 불가능합니다. 내가 권장하는 것은 고유 한 오류 코드 인 erros 코드 (error.code)를 사용하는 것이며이 코드를 사용하여이 오류 코드를 자신의 텍스트/언어에 바인딩 할 수 있습니다. Firebase 설명서에 사용 가능한 오류 코드 목록이있는 사용 가능한 페이지가 있습니다. https://firebase.google.com/docs/reference/js/firebase.auth.Auth https://firebase.google.com/docs/reference/js/firebase.auth.Error https://firebase.google.com/docs/auth/admin/errors?hl=en

편집 : 이 문제를 해결하려면 다음 단계로, 내가 (PT-BR, 내 언어) 나 자신에 의해 그것을 번역하고 (타이프에서) 구현 :

이러한 링크를 확인

내가 문자열의 인덱스 배열을 보유 할 수있는 인터페이스를 만들었습니다 일부 UI 또는 오류 서비스에서 다음

export interface MessagesIndex { 
    [index: string]: string; 
} 

을,이 선언했습니다 위의 인터페이스와 같은 변수 : 그 후

params = { 
     'invalid-argument': 'Erro: Um argumento inválido foi fornecido.', 
     'invalid-disabled-field': 'Erro: O valor fornecido para a 
      propriedade de usuário é inválido.', 

     /* ADD HERE THE OTHERs IDs AND THE CORRESPONDING MESSAGEs */ 

    } as MessagesIndex; 

, 나는, (중포 기지에서) 주어진 코드를 인쇄 error.code atribute은 "인증/오류-ID"와 같은 오기 때문에 분할 기억하는 함수를 만들었습니다 그리고 우리가 여기 만 필요하면 "오류-ID"이며, 오류 코드가 발견되지 않는 경우에 당신이 원하는 경우에, 당신은 error.code 일부 "알 수없는 오류"를 반환하고 인쇄 할 수 있습니다

public printErrorByCode(code: string): string { 
     code = code.split('/')[1]; 
     if (this.params[code]) { 
      return (this.params[code]); 
     } else { 
      return ('Ocorreu algum erro desconhecido! \n Codigo erro: ' + code); 
     } 
    } 

그것은 아니다 최고의 코드지만 도움이되기를 바랍니다!

관련 문제