Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/crossgeeks/multilingualplugin

Multilingual Plugin for Xamarin and Windows
https://github.com/crossgeeks/multilingualplugin

culture device-culture language nuget resx specific-cultures xamarin-forms

Last synced: 4 days ago
JSON representation

Multilingual Plugin for Xamarin and Windows

Awesome Lists containing this project

README

        

## Multilingual Plugin (DEPRECATED)
Simple cross platform plugin for handling language localization.

# **IMPORTANT NOTE**:

**THIS PLUGIN IS DECPRECATED - NOT UNDER DEVELOPMENT AND NOT SUPPORTED**

**This plugin is no longer needed. More information here:**

https://xamgirl.com/handle-multilingual-in-xamarin-forms-without-any-plugin/



## Features

- Get and set current culture
- Get device culture
- Get culture list
- Get specific culture by name

**Platform Support**

|Platform|Version|
| ------------------- | :------------------: |
|Xamarin.iOS|iOS 7+|
|Xamarin.Android|API 10+|
|Windows 10 UWP|10+|
|Xamarin.Mac|All|
|watchOS|All|
|tvOS|All|

### Setup
* Available on NuGet: http://www.nuget.org/packages/Plugin.Multilingual [![NuGet](https://img.shields.io/nuget/v/Plugin.Multilingual.svg?label=NuGet)](https://www.nuget.org/packages/Plugin.Multilingual/)
* Install into your PCL project and Client projects.

### Getting Started

1. Add your Resx files

Add one resx file per each language you want to support. "It must follow a specific naming convention: use the same filename as the base resources file (eg. AppResources) followed by a period (.) and then the language code".

2. Set the culture of your resource class file when initializing your application.

For example:
```csharp
AppResources.Culture = CrossMultilingual.Current.DeviceCultureInfo;
```
If you are using Xamarin Forms it would be in your App.cs

### Xamarin Forms Specifics

When installing the plugin it will create a **TranslateExtension.txt** file in folder Helpers, rename the extension for this file to **TranslateExtension.cs**.

In **TranslateExtension.cs** file in the constant **ResourceId** by default it will assume your resource file is added in the root of the project and the resx file is named as AppResources. If you added it to a folder or named the resx file differently you can change it there.

XAML sample usage:

### iOS Considerations

In the Info.plist file add the keys **Localizations** & **Localization native development region** to change the user interface OS elements. It will take the device language.

### API Usage

Call **CrossMultilingual.Current** from any project or PCL to gain access to APIs.

**CurrentCultureInfo**

Gets and set the current culture. By default will be set to the device culture.

Usage sample:
```csharp
CrossMultilingual.Current.CurrentCultureInfo = new CultureInfo("en");
```
Note: After changing the current culture is important to update your resx class culture. As follows:

```csharp
AppResources.Culture = CrossMultilingual.Current.CurrentCultureInfo;
```

**DeviceCultureInfo**

Gets the device culture

Usage sample:
```csharp
CrossMultilingual.Current.DeviceCultureInfo;
```

**CultureInfoList**

Gets all cultures supported in .NET Framework (neutral & specific cultures)

Usage sample:
```csharp
CrossMultilingual.Current.CultureInfoList;
```

**NeutralCultureInfoList**

Gets all cultures associated with a language (not specific to a country/region).

Usage sample:
```csharp
CrossMultilingual.Current.NeutralCultureInfoList;
```

**GetCultureInfo**

Gets a specific culture by language code.

Usage sample:
```csharp
CrossMultilingual.Current.GetCultureInfo("es");
```

In case you want to know more about localization:

https://developer.xamarin.com/guides/xamarin-forms/advanced/localization/

### Contributors

* [Charlin Agramonte](https://github.com/char0394)
* [Rendy Del Rosario](https://github.com/rdelrosario)