Skip to content

Commit 161a64c

Browse files
committed
Update Version 0.4
1 parent 6fb898f commit 161a64c

17 files changed

+205
-129
lines changed

Localization.Demo/Languages/de-DE.xml

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,5 +15,7 @@
1515
<Value Id="150" Header="Über" />
1616
<Value Id="21" Text="Das ist Dynamisch Sprachen Demo"/>
1717
<Value Id="22" Text="Verfügbare Sprachen auswählen:"/>
18-
<Value Id="24" Text="Sprachen: {0}"/>
18+
<Value Id="24" Text="Sprachen"/>
19+
<Value Id="510" Content="Hallo" />
20+
<Value Id="511" Header="Hallo Welt" Text="Das ist nachricht" />
1921
</Pack>

Localization.Demo/Languages/en-US.xml

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,10 +10,12 @@
1010
<Value Id="123" Header="Options" />
1111
<Value Id="13" Header="View" />
1212
<Value Id="130" Header="Status bar" />
13-
<Value Id="14" Header="BaseLanguages" />
13+
<Value Id="14" Header="Languages" />
1414
<Value Id="15" Header="Help" />
1515
<Value Id="150" Header="About" />
1616
<Value Id="21" Text="This is Dynamic Language Demo with UFA.Lang" />
1717
<Value Id="22" Text="Select Available Languages:" />
18-
<Value Id="24" Text="BaseLanguages: {0}" />
18+
<Value Id="24" Text="Languages" />
19+
<Value Id="510" Content="Hello" />
20+
<Value Id="511" Header="Hello Wold" Text="This Is message String" />
1921
</Pack>

Localization.Demo/Languages/id-ID.xml

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,5 +15,7 @@
1515
<Value Id="150" Header="Tentang" />
1616
<Value Id="21" Text="Ini adalah demonstrasi Bahasa Dinamis dengan UFA.Lang" />
1717
<Value Id="22" Text="Pilih Bahasa yang tersedia:" />
18-
<Value Id="24" Text="Bahasa: {0}" />
18+
<Value Id="24" Text="Bahasa" />
19+
<Value Id="510" Content="Halo" />
20+
<Value Id="511" Header="Halo dunia" Text="Ini adalah pesan" />
1921
</Pack>
Lines changed: 78 additions & 69 deletions
Original file line numberDiff line numberDiff line change
@@ -1,71 +1,80 @@
11
{
2-
"EnglishName": "Javanese",
3-
"CultureName": "Basa Jawa",
4-
"Culture": "jv-Latn-ID",
5-
"Data": [
6-
{
7-
"Id": 0,
8-
"Title": "Contoh Aplikasi"
9-
},
10-
{
11-
"Id": 11,
12-
"Header": "Berkas"
13-
},
14-
{
15-
"Id": 110,
16-
"Header": "Medal"
17-
},
18-
{
19-
"Id": 12,
20-
"Header": "Cundhuk"
21-
},
22-
{
23-
"Id": 120,
24-
"Header": "Potong"
25-
},
26-
{
27-
"Id": 121,
28-
"Header": "Salin"
29-
},
30-
{
31-
"Id": 122,
32-
"Header": "Tempel"
33-
},
34-
{
35-
"Id": 123,
36-
"Header": "Piliyan"
37-
},
38-
{
39-
"Id": 13,
40-
"Header": "Paragan"
41-
},
42-
{
43-
"Id": 130,
44-
"Header": "Bar status"
45-
},
46-
{
47-
"Id": 14,
48-
"Header": "Basa"
49-
},
50-
{
51-
"Id": 15,
52-
"Header": "Tulung"
53-
},
54-
{
55-
"Id": 150,
56-
"Header": "babagan"
57-
},
58-
{
59-
"Id": 21,
60-
"Text": "Menika conto basa dinamis ngangge UFA.Lang"
61-
},
62-
{
63-
"Id": 22,
64-
"Text": "Piliyan basa ingkang trap:"
65-
},
66-
{
67-
"Id": 24,
68-
"Text": "Basa: {0}"
69-
}
70-
]
2+
"EnglishName": "Javanese",
3+
"CultureName": "Basa Jawa",
4+
"Culture": "jv-Latn-ID",
5+
"Data": [
6+
{
7+
"Id": 0,
8+
"Title": "Jendela Conto"
9+
},
10+
{
11+
"Id": 11,
12+
"Header": "Berkas"
13+
},
14+
{
15+
"Id": 110,
16+
"Header": "Medal"
17+
},
18+
{
19+
"Id": 12,
20+
"Header": "Cundhuk"
21+
},
22+
{
23+
"Id": 120,
24+
"Header": "Potong"
25+
},
26+
{
27+
"Id": 121,
28+
"Header": "Salin"
29+
},
30+
{
31+
"Id": 122,
32+
"Header": "Tempel"
33+
},
34+
{
35+
"Id": 123,
36+
"Header": "Piliyan"
37+
},
38+
{
39+
"Id": 13,
40+
"Header": "Paragan"
41+
},
42+
{
43+
"Id": 130,
44+
"Header": "Bar status"
45+
},
46+
{
47+
"Id": 14,
48+
"Header": "Basa"
49+
},
50+
{
51+
"Id": 15,
52+
"Header": "Tulung"
53+
},
54+
{
55+
"Id": 150,
56+
"Header": "Babagan"
57+
},
58+
{
59+
"Id": 21,
60+
"Text": "Menika conto basa dinamis ngangge UFA.Lang"
61+
},
62+
{
63+
"Id": 22,
64+
"Text": "Piliyan basa ingkang trap:"
65+
},
66+
{
67+
"Id": 24,
68+
"Text": "Basa:"
69+
},
70+
{
71+
"Id": 510,
72+
"Content": "Halo"
73+
},
74+
{
75+
"Id": 511,
76+
"Header": "Halo ndonya",
77+
"Text": "Menika layang tulis"
78+
}
79+
]
7180
}

Localization.Demo/Properties/AssemblyInfo.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111
[assembly: AssemblyConfiguration("")]
1212
[assembly: AssemblyCompany("")]
1313
[assembly: AssemblyProduct("Localisation.Demo")]
14-
[assembly: AssemblyCopyright("Copyright © 2017")]
14+
[assembly: AssemblyCopyright("Copyright © Rasyidf 2017-2019")]
1515
[assembly: AssemblyTrademark("")]
1616
[assembly: AssemblyCulture("")]
1717

Localization.Demo/Properties/Resources.Designer.cs

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Localization.Demo/Properties/Settings.Designer.cs

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Localization.Demo/Rasyidf.Localization.Demo.csproj

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@
2424
<DefineConstants>DEBUG;TRACE</DefineConstants>
2525
<ErrorReport>prompt</ErrorReport>
2626
<WarningLevel>4</WarningLevel>
27+
<LangVersion>7.3</LangVersion>
2728
</PropertyGroup>
2829
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
2930
<PlatformTarget>AnyCPU</PlatformTarget>
@@ -33,6 +34,7 @@
3334
<DefineConstants>TRACE</DefineConstants>
3435
<ErrorReport>prompt</ErrorReport>
3536
<WarningLevel>4</WarningLevel>
37+
<LangVersion>preview</LangVersion>
3638
</PropertyGroup>
3739
<ItemGroup>
3840
<Reference Include="System" />

Localization.Demo/View/MainWindow.xaml

Lines changed: 9 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -41,14 +41,12 @@
4141
<MenuItem Header="{ul:Tr Status bar, Uid=130}" IsCheckable="True" />
4242
</MenuItem>
4343
<MenuItem
44-
Header="{ul:Tr Language,
45-
Uid=14}"
46-
ItemTemplate="{DynamicResource LanguageDictionaryItemTemplate}"
47-
ItemsSource="{Binding Cultures, Mode=OneWay}">
44+
Header="{ul:Tr Language, Uid=14}"
45+
ItemsSource="{Binding CultureMenus, Mode=OneWay}">
4846
<MenuItem.ItemContainerStyle>
4947
<Style TargetType="MenuItem">
5048
<Setter Property="Command" Value="{Binding ChangeLanguageCommand}" />
51-
<Setter Property="CommandParameter" Value="{Binding}" />
49+
<Setter Property="CommandParameter" Value="{Binding Tag, RelativeSource={RelativeSource Self}}" />
5250
</Style>
5351
</MenuItem.ItemContainerStyle>
5452
</MenuItem>
@@ -79,18 +77,17 @@
7977
ItemsSource="{Binding Cultures}"
8078
SelectedItem="{Binding SelectedPack}" />
8179
<StatusBar Height="24" VerticalAlignment="Bottom">
80+
<StatusBarItem Height="24" Width="100" VerticalAlignment="Top" >
81+
<TextBlock Text="{ul:Tr 'Languages',
82+
Uid=24}"/>
83+
</StatusBarItem>
8284
<StatusBarItem Height="24" VerticalAlignment="Top">
83-
<Run>
84-
<ul:Tr Uid="24" Default="Languages : {0}">
85-
<Binding
85+
<Binding
8686
FallbackValue="0"
8787
Mode="OneWay"
8888
Path="LanguageCount" />
89-
</ul:Tr>
90-
</Run>
91-
92-
9389
</StatusBarItem>
9490
</StatusBar>
91+
<Button Content="{ul:Tr Hallo, Uid=510}" Margin="73,0,0,29" Command="{Binding ShowMessageCommand}" VerticalAlignment="Bottom" Height="40" HorizontalAlignment="Left" Width="164"/>
9592
</Grid>
9693
</Window>

Localization.Demo/ViewModel/MainWindowViewModel.cs

Lines changed: 28 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,9 @@
11
using Rasyidf.Localization;
2+
using System;
23
using System.Collections.ObjectModel;
34
using System.ComponentModel;
5+
using System.Windows;
6+
using System.Windows.Controls;
47

58
namespace Localization.Demo
69
{
@@ -13,23 +16,34 @@ public MainWindowViewModel()
1316
var cultures = a.Keys;
1417
foreach (var culture in cultures)
1518
{
16-
Cultures.Add(BaseLanguagePack.GetResources(culture));
19+
var pack = BaseLanguagePack.GetResources(culture);
20+
Cultures.Add(pack);
21+
CultureMenus.Add(new MenuItem() { Header= $"{pack.EnglishName} ({pack.CultureName})", Tag = pack });
1722
}
1823
}
1924

2025
private RelayCommand<BaseLanguagePack> _changeLanguageCommand;
21-
public RelayCommand<BaseLanguagePack> ChangeLanguageCommand => _changeLanguageCommand
22-
?? (_changeLanguageCommand = new RelayCommand<BaseLanguagePack>(ChangeLanguage));
26+
public RelayCommand<BaseLanguagePack> ChangeLanguageCommand => _changeLanguageCommand ?? (_changeLanguageCommand = new RelayCommand<BaseLanguagePack>(ChangeLanguage));
27+
private RelayCommand _showMessageCommand;
28+
public RelayCommand ShowMessageCommand => _showMessageCommand ?? (_showMessageCommand = new RelayCommand(ShowMessage));
2329

24-
private void ChangeLanguage(BaseLanguagePack value)
30+
private void ShowMessage(object obj)
2531
{
26-
LocalizationService.Current.ChangeLanguage(value);
32+
MessageBox.Show(LocalizationService.GetString("511", "Text", "Message"),LocalizationService.GetString("511", "Header","Header"));
33+
}
2734

28-
OnPropertyChanged(nameof(SelectedPack));
35+
private void ChangeLanguage(BaseLanguagePack value)
36+
{
37+
if (value != null)
38+
{
39+
LocalizationService.Current.ChangeLanguage(value);
40+
OnPropertyChanged(nameof(SelectedPack));
41+
}
2942
}
3043

3144
private ObservableCollection<BaseLanguagePack> _cultures = new ObservableCollection<BaseLanguagePack>();
3245
private BaseLanguagePack _selectedPack;
46+
private ObservableCollection<MenuItem> _cultureMenus = new ObservableCollection<MenuItem>();
3347

3448
public ObservableCollection<BaseLanguagePack> Cultures
3549
{
@@ -39,7 +53,14 @@ public ObservableCollection<BaseLanguagePack> Cultures
3953
OnPropertyChanged(nameof(Cultures));
4054
}
4155
}
42-
56+
public ObservableCollection<MenuItem> CultureMenus
57+
{
58+
get => _cultureMenus; set
59+
{
60+
_cultureMenus = value;
61+
OnPropertyChanged(nameof(CultureMenus));
62+
}
63+
}
4364
public int LanguageCount => Cultures.Count;
4465

4566
public BaseLanguagePack SelectedPack

Localization/BaseLanguagePack.cs

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,18 @@ public TValue Translate<TValue>(string uid, string vid)
4040
return (TValue)Translate(uid, vid, null, typeof(TValue));
4141
}
4242

43+
public TValue Translate<TValue>(string uid, string vid, TValue defaultValue)
44+
{
45+
try
46+
{
47+
return (TValue)Translate(uid, vid, defaultValue, typeof(TValue));
48+
}
49+
catch (Exception)
50+
{
51+
return defaultValue;
52+
}
53+
}
54+
4355
public object Translate(string uid, string vid, object defaultValue, Type type)
4456
{
4557
return OnTranslate(uid, vid, defaultValue, type);

Localization/LanguageConverter.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
using System;
22
using System.Diagnostics;
33
using System.Globalization;
4-
using System.Windows.Data;
4+
using System.Windows.Data;
55

66
namespace Rasyidf.Localization
77
{

0 commit comments

Comments
 (0)