AnimeNeko / Atarashii

DISCONTINUED. Atarashii! - An amazing, modern MAL app for Android 4+
http://atarashiiapp.com
BSD 2-Clause "Simplified" License
79 stars 23 forks source link

App Translation #104

Closed xiprox closed 10 years ago

xiprox commented 10 years ago

Thought it could be cool to have the app translated into different languages. I know this isn't that necessary but still we could maybe keep this going on in the back even if slowly.

I can translate the existing strings into Turkish myself. Rest of the team can translate to their native languages. And about the remaining languages, we could post the app in this xda thread http://forum.xda-developers.com/showthread.php?t=2069390 and have a crowdin page ?

d-sko commented 10 years ago

IMHO translation does not make much sense because all the data loaded from MAL is english anyway. But if the others like the idea I can do the german translation.

xiprox commented 10 years ago

Hmm, I guess you have a point. Just went over the app imagining it translated and the synopsis part looked pretty stupid. Might as well just drop the idea...

ratan12 commented 10 years ago

Hahaha no @xiprox. Look at this: https://plus.google.com/104824481749290081796/posts/3QwpXqfJoSr (Atarashii community link)

To be honest the api that we are using does only return the synopsis in english & the json parameters(I don't know the exact name). All the other stuff are strings that atarashii is using.

So basically this idea isn't stupid at all, I am happy that there are other people who share this idea. I can translate dutch. Note: dutch(The netherlands) is not the same as deutsch(germany).

I don't know how the developers(owners) are thinking..

srvrguy commented 10 years ago

It's not a bad idea. I think it would be best to handle after the first 1.4 beta (as soon as I can build and sign it - family issues have currently limited my outside-work time).

About the only things that would be stuck in English are the title - which isn't always in English anyway - and the synopsis. The status names could be easily translated and numbers are just numbers.

We don't currently have access to tags or anything else, so those wouldn't show at the moment.

xiprox commented 10 years ago

I was thinking of translating all the other app strings so the UI would look native and all.. When I wrote "stupid synopsis" I was thinking of it like title in your language and content in English...

We can't really do much about the synopsis but we could do something in this logic

if(receiceddata == "Watching") {
      setText(R.string.status_watching);
}

for the statuses...

xiprox commented 10 years ago

@motokochan Oh, do you plan to release 1.4 any time soon? In my opinion the current status of the app is way way way better than what there is on play store. Retrofit made it just awesome in terms of speed and all this new stuff like the nav drawer, friends, profile, top rated ones, populars... I think people would love all this.

I personally was thinking that the development was kinda dead until I recently came to visit the repo to see how things were...

ratan12 commented 10 years ago

The beta was planned the first quarter of this year (basically soon).

We could use the default Languages methodes of android: http://developer.android.com/training/basics/supporting-devices/languages.html It looks pretty easy.

@xiprox the development was pretty slow when I started working on the app but when the api went down and MAL decided to use the new whitelist stuff became important. That was almost the same time when we started the discussion of building our own api. Thanks to that idea we could support the friendlist & manga (top/most/popular/just added) and we were the first app that supported friendlist.

xiprox commented 10 years ago

@ratan12 Yeah, that was my intention to begin with. I think crowdin even supports pulling translated strings.xml files into your repo or something like that.. Not sure if it was crowdin or not but i think I saw that somewhere..

Are there even apps that support top rated, most popular, and upcoming ones (from mal)? I don't remember seeing any. Anyways, since "All the other apps suck!"... :)

srvrguy commented 10 years ago

Trying to follow conversation, but here's some remarks:

Status text is in an XML string table, so it's really easy to set up a language-specific alternative. No programming logic needed (and we can simply change if we're using the hardcoded status labels returned by the API). We currently do at least some of this - it's how we make custom status labels like "in progress" instead of "watching" and "reading".

Version 1.4 will be released when it's ready. I'd like to get the updates to the people using the beta version of the application on the store for some field testing. There was a period when the stuff wasn't all that stable, and some of the new features were waiting on the rewrite of the API, which is now basically done. If it proves to have a low number of defects, it'll get pushed to stable.

xiprox commented 10 years ago

Oh, I see. That makes it even easier then.

ratan12 commented 10 years ago

After the release beta we still need to do a string cleanup. (I mean checking which strings are used...) Translating an unused string is wasted effort and influences the overview.

note: The last time I did a string cleanup I found a hello world string...!

xiprox commented 10 years ago

Haha, I guess everyone forgets that hello world string there.. :D

Btw, kinda bad news about crowdin. I tried it out the other day and I can say that the features and all are pretty cool but it gives you only 10 days free until you pay for it...

ratan12 commented 10 years ago

This is maybe a good alternative http://www.oneskyapp.com/

xiprox commented 10 years ago

Wow! Great find! I was thinking that defining contexts would be really boring and painful but just look at this https://github.com/onesky/auto-screenshot-android Awesome stuff, really.

ratan12 commented 10 years ago

Just finished cleaning up the strings.xml I will create a pull request when all the requests are merged because it can conflict some of the commits.

@AnimaSA @motokochan what do you both think of http://www.oneskyapp.com/ ?

AnimaSA commented 10 years ago

Hrm. It looks like an interesting idea. I'd be open to it, for sure.

ratan12 commented 10 years ago

I just made the translation site available. Link: http://atarashii.oneskyapp.com/collaboration/project?id=22217

@d-sko @xiprox I enabled Turkish, German & Dutch. You both can now start with translating ;)

@AnimaSA @motokochan I send you both an invitation. If you accept that you will be granted admin rights & can one of you make an announcement on g+? If there are other people interested with helping us out they are welcome. Only thing we need to do is download the files...It will automatically change in .xml with the proper folder names and merge it into github.

AnimaSA commented 10 years ago

Ok, I got myself setup with it. I won't be much help though as I can only speak English unfortunately.

I'll make an announcement on the G+ page later today.

ratan12 commented 10 years ago

@AnimaSA Nice! If they want any new language just tell them to add a comment on the g+ page. I will create the language within 24 hours or you guys can create it.

d-sko commented 10 years ago

@ratan12 good! I'll look at it soon.

ratan12 commented 10 years ago

We don't include the following things into the strings.xml:

Anyone an idea how to add Detailview (Media type) & Detailview (Media status) to the stings.xml (proper way)?

AnimaSA commented 10 years ago

Shouldn't be hard. Define the strings in XML, and choose an XML string based on the response instead of simply placing the response data into the view.

So like, for media type:

etc. We just correlate response data to a string.

ratan12 commented 10 years ago

@AnimaSA I don't know what you mean... Do you mind to take care of it XD

Wait do you mean a switch method?

d-sko commented 10 years ago

We could also use string arrays for this and correlate response data to int.

in strings.xml it would look like this:

<string-array name="mediaType">
    <item>TV</item>
    <item>OVA</item>
    <item>Movie</item>
</string-array>

and the Java(-pseudo)-code would look like this

Resources res = getResources();
String[] mediaTypes = res.getStringArray(R.array.mediaType);
String type = mediaType[anime.getType()];
AnimaSA commented 10 years ago

Yeah. So if the data we load for MediaType is "Movie", switch it and choose the response_MediaType_Movie string, which in english would be "Movie", but then we have room to translate them.

Fakeedit: Does that work? That would probably simplify it a lot.

d-sko commented 10 years ago

This works, I used it before (even for the same purpose when I was working on my own MAL-App xD). If the string data is translated to the right integer (starting from 0 to use it as the array index, in my example: TV=0, OVA=1, Movie=2) then its working.

Edit: I wanted to test the german localisation... I'm quite sure there was a download-button on onesky yesterday... I can't find it anymore o.O

ratan12 commented 10 years ago

@d-sko Mind to take care of it (+ all the other stuff I mentioned some posts above)?

Edith: Only admins have the right to download the file XD Edith 2: It is now available for everyone.

d-sko commented 10 years ago

@ratan12 ok, I'll do it.

Edit: DetailView done: #126

d-sko commented 10 years ago

I noticed that it will be quite difficult to translate dates (= use language specific date formats). Its easy for birthday and joindate, these could be converted to date objects and formatted as needed, but the last online date can have values like "1 hour ago". While I have built a function to parse this into a date object it is quite inaccurate. @ratan12 & @motokochan : is it possible to get this as real date strings from MAL or do they only provide these relative strings?

srvrguy commented 10 years ago

For that information, you have to scrape the HTML, and it is only provided as relative time.

Potentially, the API could translate into a standard format, but it will likely be a bit complicated and isn't something I'd like to tackle until I have API versioning figured out.

ratan12 commented 10 years ago

I agree, It is possible and not that hard but before we make changes that can influence the compatibility I would wait until the versioning has been figured out.

The exact date(dd-mm-yy HH:MM) isn't possible since MAL is just giving us 1 hour. Only dd-mm-yy HH:00 could be possible.

d-sko commented 10 years ago

We can do the translation in the app if it is complicated in the API, I've already found a working solution. I just asked to know if it is necessary.

srvrguy commented 10 years ago

Until we start to break compatibility with the old API it will continue to provide relative output for a few things and non-standard date formats for others.

d-sko commented 10 years ago

Ok, then I'll try to make those dates translatable (current progress looks promising) :)

Kcchouette commented 10 years ago

I can help you to translate Atarashii in french.
Were do you translate your app ?

xiprox commented 10 years ago

@Kcchouette Translations are done over this website. @ratan12 should add French first, though. I'll send him a message in case he didn't/doesn't see this soon...

ratan12 commented 10 years ago

@Kcchouette Hey,

Thanks for helping us out! I will add the language within one hour :D
You can send me messages through hangouts (Ratan dhawtal).

Thanks @xiprox for sending me the message.

Kcchouette commented 10 years ago

@ratan12 sorry, I don't have hangouts because I try to use open-source software… No problem for helping you, I like Atarashii ^^

ratan12 commented 10 years ago

@Kcchouette I enabled it. You can start translating ;)

Link: http://atarashii.oneskyapp.com/collaboration/project?id=22217

Kcchouette commented 10 years ago

@ratan12 thanks :-)

srvrguy commented 10 years ago

We have a translation project now and any finished translations will be included in the next beta (once the Android 2 crash bug is fixed). Closing this issue.