Nihayetinde yerelleştirmeyi gerçekleştirmek için Xamarin formları ile özel bir biçimlendirme uzantısı kullanmaya çalışıyorum. Xamarin form örneklerinin uzun bir çizgi gitmeye çalışıyorum.Xamarin.Forms.Xaml.XamlParseException: MarkupExtension bulunamadı
using System;
using Xamarin.Forms.Xaml;
using Xamarin.Forms;
using System.Diagnostics;
namespace CRI.MAP.Mobile.Views
{
// You exclude the 'Extension' suffix when using in Xaml markup
[ContentProperty ("Text")]
public class TranslateExtension : IMarkupExtension
{
public string Text { get; set; }
public object ProvideValue (IServiceProvider serviceProvider)
{
//if (Text == null)
// return null;
//Debug.WriteLine ("Provide: " + Text);
// Do your translation lookup here, using whatever method you require
//var translated = L10n.Localize (Text);
//return translated;
return "hello";
}
}
}
ihtimale karşı kodunun bazılarını yorumladı: Burada
<?xml version="1.0" encoding="utf-8" ?>
<ContentPage xmlns="http://xamarin.com/schemas/2014/forms"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
xmlns:local="clr-namespace:CRI.MAP.Mobile.Views;assembly=CRI.MAP.Mobile"
x:Class="CRI.MAP.Mobile.Views.CustomerSearchPage">
<StackLayout>
<Button
Text="{local:Translate Clear}"
Command="{Binding ClearCommand}" />
</StackLayout>
Çeviri Uzatma İşaretleme kodudur: Burada
uzantısını kullanan XAML Kanununun bir adet Meselenin nedeni buydu.
Bunu çalıştırmayı denediğimde, hatayı alıyorum: Xamarin.Forms.Xaml.XamlParseException: MarkupExtension yerel için bulunamadı: Çevir. İşaretleme uzantısını bulamıyorum çünkü baktığım tüm örneklerin aynı şekilde yapıldığı görülüyor. Bunun neden olacağını bilen var mı? Genel olarak Xamarin formları için iyi örnekler bulmada çok fazla sıkıntı yaşıyorum.
Merhaba Michelle, paylaşım için teşekkürler! XAML'den farklı ad alanlarını (iOS, Droid, WinPhone) nasıl ele aldınız? Eğer derlemeniz '' 'assembly = MyApp'' ise, Android için inşa ederken WP,' 'MyApp.Droid''' için inşa ederken' '' assembly = MyApp.WinPhone''' olarak değiştirmeniz gerekecek demektir. , usw ... – Wizche
Paylaşılan bir proje yapıyorum, bu yüzden her proje için aynı derleme adı yaptım. Montaj adı, iOS, Android ve Windows için her bir projedeki yapı özelliklerinde tanımlanır. Ad alanı, uzantıyı yazdığım ad alanına yönlendirdi. Bu daha mantıklı mı? – Michelle
Evet, aynı çözüm ile bitti. Xamarin kayalar;) – Wizche