Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
We don’t allow questions seeking recommendations for books, tools, software libraries, and more. You can edit the question so it can be answered with facts and citations.
Closed last month.
Improve this question
I have text resources in android, some are already translated whereas others are missing.
Is there a tool that can import e.g. the values xml file in addition to values xml file for Italian and checks what is missing and helps inserting the missing translations?
I tried OmegaT. This program imports the android resource and also writes into it. However, it did not show already translated stuff. Virtaal Translator does not support the xml files as input.
I would like to have a simple tool outside Eclipse, so that I may provide this tools to others helping to translate things.
I found POEditor.com to be the best and easiest to use for Android strings translation.
It supports Android XML strings import and I believe you can import your different files into the same translation and this will fill up your missing definitions.
The export will give you an XML with all your definitions together.
Oh, and it has also auto-translation or you can invite translators/friends to work with you only by inserting their email in that translation.
There is a project called Sequoyah. This is a special plugin for Eclipse. It does not allow you to translate automatically but you can easily see where and which translation values are missed. I've described it here.
Weblate is a an open source web-based tool by Michal Čihař which also supports Android and has a very tight Git integration.
I've been using this tool to translate several project and I also used it to translate Weblate itself, I've seen better in terms of translator friendliness but the overall experience was very good.
I just started writing this tool: https://github.com/BenoitDuffez/OAT/wiki/Gallery
It is aimed to be self-hosted, free; it supports CDATA, formatted="false", multiple xml files, and more.
Try Agama App Translator tool.
This is complete localization tool for Android with built-in google translator. It supports XML strings as well as menu XML files. You can easily add new language and let fill untranslated items with default (original) text or translate items as you need.
You should try Lokalise. There is a free plan, and you could upload almost any format from different platforms.
I've been using it myself, and there is virtually no other tool better for managing translations.
Related
Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
We don’t allow questions seeking recommendations for books, tools, software libraries, and more. You can edit the question so it can be answered with facts and citations.
Closed 6 years ago.
Improve this question
I have a fairly large viewpager app that I want to restyle to Material Design. I used Android Studio to create a brand new app that doesn't do anything other than demonstrate a working viewpager, tabs, and Material Design. The new app has a look that is exactly what I want.
Examining the new app I see that AS generated a boat load of useful resource code in the intermediates directory that enabled Material Design. So AS first generated the src/ code according to my choices in the "new project" process and then something in that code caused the build process to generate all of this useful Material Design support code.
For instance, the generated app has a styles xml that begins with...
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
If you ctrl-b on DarkActionBar it jumps to a huge file . . .
C:\Users\Gary\AndroidstudioProjects\MDShell\app\build\intermediates\exploded-aar\com.android.support\appcompat-v7\23.3.0\res\values\values.xml
that contains the definition. I want the build process to do that same generation for my app.
EDIT : This is the answer to my question...
Once I included the following two lines in the gradle, everything I needed got generated in my app
compile 'com.android.support:appcompat-v7:23.3.0'
compile 'com.android.support:design:23.3.0'
I googled around for an hour or so but can find no documentation on how this directory gets built and included in the new project.
Everything in the build/ directory, such as build/intermediates/, is output of the build process.
I could probably copy it into my project
If "it" is build/intermediates/, please do not copy it. You are welcome to copy things from your src/ tree between projects, as well as values from your build.gradle file (e.g., dependencies).
Does anyone know where the docs regarding this might be?
There is no comprehensive set of documentation for what appears in build/, in part because depends on a dizzying array of environmental factors (what dependencies do you have? are you using JNI? are you employing annotation processors?).
Generally speaking, developers do not often look in build/.
Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
We don’t allow questions seeking recommendations for books, tools, software libraries, and more. You can edit the question so it can be answered with facts and citations.
Closed 6 years ago.
Improve this question
Are there any vector drawing applications that generate native code for both iOS and Android? I'd like a tool for making UI Controls and Buttons for both iOS and Android (in Xamarin). I can make great dynamic objects with PaintCode for iOS, but then for the Android version I'd have to recreate it with some other tool for Android so I'm basically doing everything twice. I'd love to find a way to create some dynamic controls/buttons that can be used in both Xamarin iOS & Xamarin Android.
The new version of PaintCode (version 3, as of November 2016) now exports Android compatible code.
One common approach by many organisations (including mine) to deal with cross platform design is to use icon fonts.
The way it works is
create a SVG version of your icon/design
create a custom font with the svg/vector icon as a unicode character
The advantage:
It works with great many platforms, including android, ios, windows phone as well as the web.
icons are vector, hence scalable
the disadvantages:
icons cannot have gradients
icons cannot have multiple colors (can be solved by composing icon into multiple svg components and layering them in code)
I have a small project that might solve your problems:
https://github.com/almosr/android-svg-code-render
It is a tool that converts SVG files into Android drawing instructions and saves it as Java source file. Then you can simply call a method from this source with a Canvas parameter and the SVG content will be drawn directly to the Canvas.
It is massively faster than using an SVG file as input at runtime, because it doesn't need to parse the SVG file (which is an XML internally). Also eats up significantly less memory.
There are some limitations and drawbacks, though, so it might or might not be suitable to your needs. Especially interactions cannot be mapped in the output (yet).
Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
We don’t allow questions seeking recommendations for books, tools, software libraries, and more. You can edit the question so it can be answered with facts and citations.
Closed 7 years ago.
Improve this question
THIS QUESTION HAS MOVED TO https://softwarerecs.stackexchange.com/questions/27841/plugins-architecture-for-an-android-app
I want to implement a plugin system for an Open Source app, because it has become really large, with many features that only a few users need. Releasing different apps is not a good solution, because userA wants feature7 and feature24 whilst userB wants feature39 and feature24.
Where can I find a good example of a plugin architecture?
Here is what I would like a plugin to be able to do:
Redefine the layout of a particular screen (load deflated XML?)
Redefine a method of a class (load dex class?, AOP?)
For instance, one of the plugins must add a button on a particular screen, and clicking this button increments a value in the app's database. This is not doable with Content Providers and Intents, as far as I know.
I want to avoid making the core app's code complex with tons of hooks everywhere.
The form of the plugin could be a file on the SD card, an app, or anything else.
I have done a framework that works like Robo-guice with some of its primary IoC functions. (Cut down on boilerplate codes that load views/service etc...)
But the core of which, I believe is the solution to your problem, is the ability to load separate APK "plugin" files, that includes "res" as well as <layouts>.xml files. The <layouts>.xml file can be independently inflated by the classes within that APK. That is, you can load a CustomView (that inflates its own <layout>.xml) into an originating/parent App. All this is done without the Parent App APK knowing how the UI was inflated in the plugin APK.
Example of what I mean:
I have a Mapping App, the framework will dynamically scan installed APK that matches the "contract" for a "add-on function" plugin, and loads the UI specific to it onto the App's View as a floating panel.
I would say a plugin framework for Android is do-able, as Android has most if not all of the necessary built in APIs to accomplish this.
These are your friends in this area of plugin development for Android:
PackageManager (Scan install packages, aka Plugins)
DexClassLoader (ClassNotFoundException will be a pain if you don't use the correct ClassLoader btw)
Java Reflection
Where can I find a good example of a plugin architecture?
Roman Nurik from Google has implemented a nice plugins framework in his open source app dash clock. The plugins themselves are Services that extend the DashClockExtension class in the API and are installed as completely independent APK files with their own resources. It's quite a lot of work defining the communication protocol via the AIDL, but it's nice and clean and works very well.
one of the plugins must add a button on a particular screen, and clicking this button increments a value in the app's database.
The parts of the main Layout which can be modified by the plugin will need to be pre-defined by the core app, and exposed via the communication protocol. It should be possible for the plugin to inflate an arbitrary layout, and send it to the main app, which could put that inside a pre-allocated area of it's own Layout.
If you are just going for an increase in modularity, I would recommend using a dependency injection container such as PicoContainer, Guice or Spring.
If you want a light-weight plug-in architecture, then go for Java Plugin Framework (JPF).
It allows you to define extension points, which can be implemented by your modules. The primary job of the plug-in framework is to provide a way that you can bundle these modules (as jars), which are dynamically found by the core application and given as implementations of the extension point.
Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
We don’t allow questions seeking recommendations for books, tools, software libraries, and more. You can edit the question so it can be answered with facts and citations.
Closed 6 years ago.
Improve this question
Are there math or LaTeX engines available for the Android phone? The flashcard app I like best (AnyMemo) doesn't seem to be able to integrate equations into the flashcards except as graphics, requiring a lot more work on the user's part, and I thought a third-party math typesetter would be a possibility.
(Edit 2011.04.24) More detail: From elsewhere, I've received the following remarks on some of the available options:
JScience: Only a parser. It is not useful for generating images.
jsmath: Does not display correctly in the Android browser.
JEuclid: Depends on AWT which Android does not have.
JMathTex: Depends on Swing, which Android does not have.
snuggletex: Depends on JEuclid (see above).
Perhaps the S.O. readership can think of another way?
Built on jsMath, MathJax is a wonderful browser rendering engine for LaTeX, MathML and AsciiMath, which works fine in the native Android Browser, and also in Firefox for Android. Unfortunately, though, none of these technologies (except maybe AsciiMath) is fully supported at this time. For example, only certain LaTeX commands are supported. You can also read the documentation on MathML support and AsciiMath support.
If you're comfortable with the command line, you can also try
TeX Live for Android, although it has been reported to not work with some devices.
TeXPortal, another work in progress effort to port the complete TeX Live to Android.
So, there are alternatives and everything has its ups and downs. I just hope Google converts Android to a full Unix system, it'll make things much easier for everyone.
If you just want to generate a PDF out of you LaTeX code I'd suggest the Android app VerbTeX which does exactly that. It uses the facilities available at Online LaTeX Editor to generate the PDF
See TeXPortal on Google Play for a usable app.
I am using TeXPortal. It can download missing package automatically and running
fast.
Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
Questions asking us to recommend or find a tool, library or favorite off-site resource are off-topic for Stack Overflow as they tend to attract opinionated answers and spam. Instead, describe the problem and what has been done so far to solve it.
Closed 9 years ago.
Improve this question
My open source Android application has internationalization done the Android way, with strings.xml files.
The community has many people from many countries, and they are willing to contribute/improve translations using a collaborative website.
There is Launchpad but it only supports the gettext format so we would have to use scripts, not very convenient.
What website is convenient for translating open source Android applications?
Anybody must be able to start contributing without any sort of prior approval.
One tool was not yet listed so far - Weblate. It has native support for Android string resources and is already used for several apps (for example OsmAnd). Though it requires you to use distributed version control system (preferably Git).
I opted for Crowdin. It allows the admin to upload the XML files, and then anyone can translate to any language.
Translated files can be downloaded in a ZIP archive.
It is free for Open Source projects.
The UI used to be really slow, but it has got better recently.
I've written a tool to convert between Android XML resources and .po files:
http://blog.elsdoerfer.name/2010/04/08/android2po-managing-android-translations/
http://github.com/miracle2k/android2po
I'm using this myself with Pootle, and it works well enough, though I'm not really all that happy with the Pootle UI. Crowdin is in fact much better in that regard.
Here is a small tool I've developed: http://www.lokaligo.com/.
Probably not perfect, but for me, for now does the job.
Localize your apps and content more easily – Android Resource (.xml) formats now supported in Translator Toolkit [1]
http://translate.google.com/toolkit
[1] http://googledevelopers.blogspot.nl/2012/03/localize-your-apps-and-content-more.html
See Get Localization http://www.getlocalization.com, it integrates with Eclipse.
Amanuens.com has also support for android builtin, is free in 2011, syncs with your repo, but personally I dislike the editor.
Pootle is a great localisation platform with many features and support for many formats. The upcoming version supports even more formats and adding new formats is very simple.
Transifex is a really good tool for collaborative translation. It offers paid plans, a free demo for 15 days and is free for open source projects.
I use Androglot.com, its quite early stage but promising, free and open to anyone, supports Android string.xml files (and string-array) without restrictions...
I found MyGengo's String, which has native support for Android string resources. They're still a little buggy, but they have a slick interface. They're free for public projects.
Are there any others that have sprung up since last year? (please post as a new answer, not a comment to this answer)
I've started using android2po with a Drupal-based translation tool.