ccomeaux / boardgamegeek4android

BoardGameGeek application for Android (unofficial)
GNU General Public License v3.0
228 stars 47 forks source link

Translation #119

Open airon90 opened 5 years ago

airon90 commented 5 years ago

Hi, I would like to translate the app. How can I do that?

Kaligula0 commented 5 years ago

Me too. (Polish).

tupaschoal commented 5 years ago

Seems like you need to copy some of app/src/main/res/values files into values-<language code>, following two-letter ISO 639-1 language code. Files would be:

Chris can comment on whether this is correct.

airon90 commented 5 years ago

When everything is defined and ready to become official, CONTRIBUTING.md must be edited

ccomeaux commented 5 years ago

What @tupaschoal says is correct. However, not everything in arrays.xml needs to be translated. I need to mark up what that is. But you can just translate the certain fields and leave the others out of the XML file, and it should work.

@airon90 What more are you looking from from the CONTRIBUTING.md file? I haven't had a lot of interest from the OSS community, so I haven't bothered updating it.

airon90 commented 5 years ago

@ccomeaux

What @tupaschoal says is correct. However, not everything in arrays.xml needs to be translated. I need to mark up what that is. But you can just translate the certain fields and leave the others out of the XML file, and it should work.

I will translate everything translateable.

@airon90 What more are you looking from from the CONTRIBUTING.md file?

I would create a section specifying how to translate the app. As soon as I can I will do a PR :)

I haven't had a lot of interest from the OSS community, so I haven't bothered updating it.

Unfortunately I am not a coder, so I help (F)OSS projects by translating them. Think about creating an account on Transifex or Crowdin. Many projects integrate them as translating platform.

tupaschoal commented 5 years ago

I'd advise you guys to create an issue saying "translate to " and take the issue up, cause right now we don't even know if you're targeting the same one and there might be merges or wasted work

Kaligula0 commented 5 years ago

@tupaschoal I've just made #122 (Translate to Polish) but I don't know how to take it up. I believe someone from the Collaborators has to assign me? Well, only if I can be assigned, not being a Collaborator.

Kaligula0 commented 5 years ago

@ccomeaux Please explain what strings like this Syncing %1$,d game: %2$s mean, because in many languages word forms depend of what is inserted there (a number? a title?) :)

tupaschoal commented 5 years ago

Do take a look at Formatter. These follow the pattern:

%[argument_index$][flags][width][.precision]conversion

% - to start argument 1$ - denotes the first argument (argument_index$) , - is a flag to include local-specific grouping separator (flags) 'd' - means a decimal integer

So %1$,d means that the first argument is an integer and %2$s that the second is a string

Kaligula0 commented 5 years ago

Oh, thanks. But that's not all we need. Some strings are unintuitive, like Downloading \"%s\" collection %s – I have no idea what's to be inserted there, which results in troubles in translation :(

tupaschoal commented 5 years ago

I see, you can always ask and I'll do my best to help. I'm not acquainted with the whole app, so I search for its usage and try to infer. The first string is one of the values from this array:

    <string-array name="pref_sync_status_entries">
        <item>Own</item>
        <item>Previously Owned</item>
        <item>For Trade</item>
        <item>Want in Trade</item>
        <item>Want to Buy</item>
        <item>Wishlist</item>
        <item>Want to Play</item>
        <item>Preordered</item>
        <item>Played</item>
        <item>Rated</item>
        <item>Commented</item>
        <item>Has Parts</item>
        <item>Want Parts</item>
    </string-array>

The second is one of:

            BggService.THING_SUBTYPE_BOARDGAME -> R.string.games
            BggService.THING_SUBTYPE_BOARDGAME_EXPANSION -> R.string.expansions
            BggService.THING_SUBTYPE_BOARDGAME_ACCESSORY -> R.string.accessories
            else -> R.string.items

which are converted exactly to:

Games
Expansions
Accessories
Items
Kaligula0 commented 5 years ago

What @tupaschoal says is correct. However, not everything in arrays.xml needs to be translated. I need to mark up what that is.

In arrays.xml we should translate only:

    <string-array name="collection_status_filter_entries">
    <string-array name="expansion_status_filter">
    <string-array name="wishlist_priority">
    <string-array name="wishlist_priority_finite">
    <string-array name="currency">
        <item>Other</item>  ← !ONLY THIS ITEM of "currency"
    <string-array name="game_weight">
    <string-array name="language_poll">

leaving these unchaged:

    <string-array name="pref_sync_status_default">
    <string-array name="collection_status_filter_values">
    <string-array name="expansion_status_filter_values">

shouldn't we?

airon90 commented 5 years ago

@ccomeaux Could you please tell me what exactly should be translated in each file, so that I can add info in #121?

ccomeaux commented 4 years ago

Do the changes in 2295a1dd51c11a4f221c71d1de3156f0ef31d38d clarify this?

Kaligula0 commented 4 years ago

I think yes :) I still suggest to either add a link to this issue (or tupaschoal's comment https://github.com/ccomeaux/boardgamegeek4android/issues/119#issuecomment-534538212 and his next comments and on #122, because they explain a lot about how the files are written) or copy tupaschoal's comments there (or write yours).

Kaligula0 commented 4 years ago

@airon90 How's your translation going? :)

Cwpute commented 2 months ago

Hi, i'm a user from France and wwuld be willing to translate this app as well, only if it was more easily accessible.

Unfortunately I am not a coder, so I help (F)OSS projects by translating them. Think about creating an account on Transifex or Crowdin. Many projects integrate them as translating platform.

I concur with what @airon90 says, though if you so choose to use a crowdsourcing platform for translation, i'd rather guide you towards Weblate which provides free hosting for foss projects, and is itself an opensource endeavour.

If such tools are too heavy to implement, i've seen other devs use homebrewed lightweight tools ( Snappymail and Palcka Tarock ) that act as a bridge for users who are not so used to git and coding.