Dr.Kook
Dr.Kook

Reputation: 3

How to change city name language from location?

In my application i want get user City name from Latitude and Longitude.
For this i write below codes, but show me city name fro English language such as "Tehran"

But i want show this city name for Farsi , such as "تهران"

How can i it for change language?

My codes :

public class MainActivity extends Activity {

    private SimpleLocation mLocation;
    private Geocoder geocoder;
    private List<Address> addresses;
    private String cityName;

    @Override
    protected void onCreate(final Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        // construct a new instance
        mLocation = new SimpleLocation(this);

        // reduce the precision to 5,000m for privacy reasons
        mLocation.setBlurRadius(5000);

        geocoder = new Geocoder(this, Locale.getDefault());

        // if we can't access the location yet
        if (!mLocation.hasLocationEnabled()) {
            // ask the user to enable location access
            SimpleLocation.openSettings(this);
        }

        final double latitude = mLocation.getLatitude();
        final double longitude = mLocation.getLongitude();

        try {
            addresses = geocoder.getFromLocation(latitude, longitude, 1);
            cityName = addresses.get(0).getAddressLine(0);
        } catch (IOException e) {
            e.printStackTrace();
        }

        findViewById(R.id.textView).setOnClickListener(new View.OnClickListener() {

            @Override
            public void onClick(View v) {

                Toast.makeText(MainActivity.this, "" + cityName, Toast.LENGTH_SHORT).show();
            }

        });
    }

    @Override
    protected void onResume() {
        super.onResume();
        // make the device update its location
        mLocation.beginUpdates();
    }

    @Override
    protected void onPause() {
        // stop location updates (saves battery)
        mLocation.endUpdates();

        super.onPause();
    }
}

Upvotes: 0

Views: 675

Answers (4)

Faraz
Faraz

Reputation: 2154

Instead of passing Locale.getDefault(), pass new Locale("fa_IR").

And use addresses.get(0).getLocality() to get the name of the city.

See list of supported locales.

https://stackoverflow.com/a/7989085/5722608

Upvotes: 0

Nik
Nik

Reputation: 2060

Change TextView with locale

Locale loc = new Locale("ar"); // change locale as per your requirement
textView.setTextLocale(loc);
textView.setText("Farsi");

Upvotes: 1

kishna.147
kishna.147

Reputation: 177

Just pass the locale in the constructor below:

Geocoder geo = new Geocoder(MainActivity.this, new Locale("Your desired locale code"));

Upvotes: 2

RAAAAM
RAAAAM

Reputation: 3380

User localization for changing the language using string.xml. pl follow the https://developer.android.com/guide/topics/resources/localization.html to know more about localization in android application.

Upvotes: 0

Related Questions