#c# #android #ios #xamarin #translate
Вопрос:
Я следую превосходному учебнику (Ссылка) по многоязычию в Xamarin.Формы
Все работает хорошо, но у меня есть одна проблема.
В своем приложении я использую панель навигации с помощью Syncfusion, поскольку я создаю пункты меню в виде списка, как показано ниже.
DrawerPage.xaml
<ListView x:Name="listView"
SelectionMode="Single"
RowHeight="70"
ItemSelected="listView_ItemSelected"
SeparatorColor="Transparent">
<ListView.ItemTemplate>
<DataTemplate>
<ViewCell>
<StackLayout Margin="32,10,0,0"
VerticalOptions="Center" >
<Grid RowDefinitions="1*, Auto">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="50"/>
<ColumnDefinition Width="auto"/>
</Grid.ColumnDefinitions>
<Label Grid.Row="0"
Grid.Column="0"
HorizontalTextAlignment="Start"
HorizontalOptions="Start"
FontSize="25"
FontFamily="Material-Outlined"
Style="{StaticResource IconLabelStyle}"
Text="{Binding Icon}" />
<Label Grid.Row="0"
Grid.Column="1"
HorizontalTextAlignment="Start"
HorizontalOptions="Start"
Margin="10,0,0,0"
Text="{Binding Name}"
FontSize="16"/>
</Grid>
</StackLayout>
</ViewCell>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
DrawerPage.cs
private static string MAP = Lang.ResourceManager.GetString("Map");
private static string MAPICON = IconFont.ResourceManager.GetString("LocationOn");
private static string SETTINGS = Lang.ResourceManager.GetString("Settings");
private static string SETTINGSICON = IconFont.ResourceManager.GetString("Settings");
public partial class DrawerPage : ContentPage {
drawerNavItems();
}
private void drawerNavItems()
{
List<MenuItem> itemList = new List<MenuItem>();
itemList.Add(new MenuItem { Icon = MAPICON, Name = MAP });
itemList.Add(new MenuItem { Icon = SETTINGSICON, Name = SETTINGS });
listView.ItemsSource = itemList;
}
Проблема, с которой я сталкиваюсь, заключается в том, что я не понимаю, как я должен использовать вспомогательный класс в ссылке на учебник выше для перевода пунктов меню ящика.
В Xaml мы можем просто перевести строки следующим образом
Text="{helpers:Translate Support}"
Но как мне сделать то же самое в коде, стоящем за этим ?
Комментарии:
1. разве это не то, что
Lang.ResourceManager.GetString
мы делаем?2. Он не работает во время выполнения
3. это специально рассмотрено в учебнике, на который вы ссылаетесь — devblogs.microsoft.com/xamarin/…
4. Что ты имеешь в виду?
5. раздел, на который я напрямую ссылался — «Локализованный текст на C#» — показывает, как сделать именно то, о чем вы просите