Çoklu dil mantığı nasıldır.?
5
●239
- 31-07-2019, 09:21:38Merhabalar .net yazılımı üzerinde çalışıyorum kontrol panelden eklenilen dile göre site içeriği ing, Rusça, almanca vs gibi dilleri desteklemesi gerekiyor. Bunun tam olarak mantığı nedir.
- 31-07-2019, 09:39:401- Diller tablonuz olsun ve içerisinde sitede yayınlanacak dilleri ekleyin.
2- içeriklerinizin bulunduğu tabloya dil alanı ekleyin.
3-Panelden içerikleri ekletirken dil seçtirin
4-sitenizde session veya cookie göre işlem yaptırarak en seçildiğinde ilgili tablo alanında dil değeri en olanlar gelsin.
5-sitede ki sabit içerikleride yine bir tablo yaparak dile göre kaydedip görüntüleyebiilirsiniz.
en = ingilizce
Bu anlattığım sadece 1 yöntem.Bunun dışında farklı birçok yöntem kurulabilir ve kurulduda. - 31-07-2019, 09:50:18S.a. asp.net üzerinde localization konusunu araştırmanızda fayda var.ertugrulyasar adlı üyeden alıntı: mesajı görüntüle
hayırlı günler. - 31-07-2019, 09:52:521- Diller tablosu oluşturun ve her dil için ID verin
2- Dillerin çevirilerinin yer alacağı ikinci bir tablo oluşturun ve dil id + resource id + value eşleştirin. İlgili dil çağrıldığında istenen resource id ye göre value gönderir.
3- Dil ID ve resource ID'nin unique olması zorunlu. Bu gibi ayarları unutmayın.
4- Storeprocedure ile XML olarak başka dillerin otomatik import edilebileceği bir script yazın. Örnek kod bırakıyorum senin için;
CREATE PROCEDURE [LanguagePackImport] ( @LanguageId int, @XmlPackage xml, @UpdateExistingResources bit ) AS BEGIN IF EXISTS(SELECT * FROM [Language] WHERE [Id] = @LanguageId) BEGIN CREATE TABLE #LocaleStringResourceTmp ( [LanguageId] [int] NOT NULL, [ResourceName] [nvarchar](200) NOT NULL, [ResourceValue] [nvarchar](MAX) NOT NULL ) INSERT INTO #LocaleStringResourceTmp (LanguageId, ResourceName, ResourceValue) SELECT @LanguageId, nref.value('@Name', 'nvarchar(200)'), nref.value('Value[1]', 'nvarchar(MAX)') FROM @XmlPackage.nodes('//Language/LocaleResource') AS R(nref) DECLARE @ResourceName nvarchar(200) DECLARE @ResourceValue nvarchar(MAX) DECLARE cur_localeresource CURSOR FOR SELECT LanguageId, ResourceName, ResourceValue FROM #LocaleStringResourceTmp OPEN cur_localeresource FETCH NEXT FROM cur_localeresource INTO @LanguageId, @ResourceName, @ResourceValue WHILE @@FETCH_STATUS = 0 BEGIN IF (EXISTS (SELECT 1 FROM [LocaleStringResource] WHERE LanguageId=@LanguageId AND ResourceName=@ResourceName)) BEGIN IF (@UpdateExistingResources = 1) BEGIN UPDATE [LocaleStringResource] SET [ResourceValue]=@ResourceValue WHERE LanguageId=@LanguageId AND ResourceName=@ResourceName END END ELSE BEGIN INSERT INTO [LocaleStringResource] ( [LanguageId], [ResourceName], [ResourceValue] ) VALUES ( @LanguageId, @ResourceName, @ResourceValue ) END FETCH NEXT FROM cur_localeresource INTO @LanguageId, @ResourceName, @ResourceValue END CLOSE cur_localeresource DEALLOCATE cur_localeresource DROP TABLE #LocaleStringResourceTmp END END GO5- Bir XML ile dil dosyası hazırlayın import etmek için, şunun gibi;
<LocaleResource Name="AdminEmailRequired"> <Value>Enter admin email</Value> </LocaleResource> <LocaleResource Name="AdminPassword"> <Value>Admin user password</Value> </LocaleResource> <LocaleResource Name="AdminPasswordRequired"> <Value>Enter admin password</Value> </LocaleResource>
6- Excel ile aldığınız dil dosyasını otomatik XML e çevirdikten sonra import edin.
7- Sistemi farklı dillerde farklı değerleri çıkarabileceğiniz biçimde "localresource" ayarları ile yapılandırın. Kaynak kod içerisine tek kelime dahi olsa inline metin girmeyin.
8- Sistemi sağdan sola, soldan sağa dillere göre yapılandırın. Buna özel tasarım dosyaları da oluşturmayı ihmal etmeyin.
9- SEO için farklı dil seçimi yapıldığında URL'de yapılan dil seçimini belirtin.
10- Tanımladığınız dosyaların sistemin çalışmasını yavaşlatabileceğini unutmadan, gereksiz ek tanımlamalardan kaçının ve tekrar eden tanımlamalar için genel tanımlama yaratın. Tam teşekküllü bir e-ticaret sitesi için 5000-7000 arası resource yaratılabilir.
İlave:
ASP.NET Core Globalization & Localization: https://docs.microsoft.com/en-us/asp...aspnetcore-2.2
Ayrıca, Visual Studio'da online içerikleri yüklemeni, ilaveten MSDN'de bolca vakit geçirmeni öneririm. Biraz da video izlersen, farklı insanların yaşadığı sorunlar ve çözümleri hakkında fikir sahibi olabilirsin. Bu başlangıçta biraz vakit kaybettirebilir, ancak ilerde olabilecek sorunlara karşı önleyici olur ve performans anlamında daha güçlü olmanı sağlar. - 03-08-2019, 15:29:35Arkadaşın dediği gibi localization bakBeyazsahin adlı üyeden alıntı: mesajı görüntüle