menu
타토에바
language
회원 가입 로그인
language 한국어
menu
타토에바

chevron_right 회원 가입

chevron_right 로그인

검색하기

chevron_right Show random sentence

chevron_right 언어로 검색하기

chevron_right 리스트로 검색하기

chevron_right 태그로 검색하기

chevron_right 오디오로 검색하기

커뮤니티

chevron_right 담벼락

chevron_right 전체 회원 리스트

chevron_right 회원들이 쓰는 언어

chevron_right 원어민

search
clear
swap_horiz
search
User55521 User55521 2014년 8월 8일, 수정된 때 2014년 8월 8일 2014년 8월 8일 오후 3시 48분 1초 UTC, 수정된 때 2014년 8월 8일 오후 3시 48분 35초 UTC flag Report link Permalink

There was a discussion about UIs in [[#3410618]], so I thought I could submit a wish.

Current Tatoeba UI supports only 1 form of language names, which is a problem when translating into languages where words have several forms. In "French example sentence" and "French" in the language list, words "French" may be different in different languages.

Effectively this means that in the current translations of "French example sentence", Russian has a completely unnatural "Пример предложения, язык французский" (Example sentence, language is French), while Polish has an ungrammatical "Zdanie przykładowe francuski" with "francuski" having an incorrect gender.

Surely we don’t want to have unnatural and ungrammatical sentences in an UI. How can we expect users to submit natural sentences if the site itself uses unnatural ones?

{{vm.hiddenReplies[20116] ? 'expand_more' : 'expand_less'}} 답변 숨기기 답변 보이기
sacredceltic sacredceltic 2014년 8월 8일 2014년 8월 8일 오후 4시 11분 2초 UTC flag Report link Permalink

Good point.
Each UI language element has to be separately identified in Launchpad, the translation tool that is being used to create the different Tatoeba locales.

Some of them are actually used as variables in other UI language elements in that tool, in order to avoid multiple (and possibly conflicting) translations of the same element.
But that was done without consideration for the declination problem you mention, because the persons who did had no notion that these could be declined in other languages than the ones they knew.
So although using variables in UI elements looks smart, at first sight, it should be proscribed, and each UI language element should be translatable separately.

{{vm.hiddenReplies[20117] ? 'expand_more' : 'expand_less'}} 답변 숨기기 답변 보이기
User55521 User55521 2014년 8월 8일, 수정된 때 2014년 8월 8일 2014년 8월 8일 오후 6시 6분 44초 UTC, 수정된 때 2014년 8월 8일 오후 6시 7분 40초 UTC flag Report link Permalink

I think ideally there should be a way to treat each variable as an array, and the number of elements in that array should be language-dependent.

E.g., so that I can translate "French" as {[NOM] = "французский", [PREP] = "французском"}. And then so that it could be used in text as "%1 example sentence" => "Пример предложения на %1[PREP]".

{{vm.hiddenReplies[20119] ? 'expand_more' : 'expand_less'}} 답변 숨기기 답변 보이기
sacredceltic sacredceltic 2014년 8월 8일 2014년 8월 8일 오후 6시 17분 44초 UTC flag Report link Permalink

That would indeed be an elegant solution. But I don't think Launchpad enables this. It's a one to one translation, alas...

sacredceltic sacredceltic 2014년 8월 8일 2014년 8월 8일 오후 4시 45분 18초 UTC flag Report link Permalink

Ideally, Tatoeba should be developed on a framework that handles internationalisation, with the management of locales, and not rely on an external tool for localisation.

gillux gillux 2014년 8월 8일 2014년 8월 8일 오후 8시 39분 45초 UTC flag Report link Permalink

Tatoeba uses gettext to localize text. The problem you describe can probably be solved by using the so-called contexts [1]. This allows to have different translations of the same original string for different contexts. For instance "French" in the context of a language list may have a different translation than "French" in the context of "French example sentences". Impersonator, do you think this would solve the problem?

[1] https://www.gnu.org/software/ge.../Contexts.html

{{vm.hiddenReplies[20123] ? 'expand_more' : 'expand_less'}} 답변 숨기기 답변 보이기
User55521 User55521 2014년 8월 8일 2014년 8월 8일 오후 9시 35분 10초 UTC flag Report link Permalink

> Impersonator, do you think this would solve the problem?

I believe no. Context should be language-dependent (e.g. languages X and Y may have 2 cases; but language X uses case A in strings 1, 2, 3 and case B in strings 4, 5, 6; while language Y uses case A in strings 1, 3, 5 and case B in 2, 4, 6), and gettext doesn't allow this.

Of course, we can create all possible contexts (i.e. 1, 2, 3, 4, 5, 6), but this would mean making the translation extremely difficult.

{{vm.hiddenReplies[20124] ? 'expand_more' : 'expand_less'}} 답변 숨기기 답변 보이기
gillux gillux 2014년 8월 14일 2014년 8월 14일 오후 7시 17분 34초 UTC flag Report link Permalink

I’m thinking about a way to solve this and I’ve explained it into a ticket.

https://github.com/Tatoeba/tatoeba2/issues/404