Translation update - HU, TR; Fix #74

Also add auth support to the Mongo config provider. Leak date format
fix.
This commit is contained in:
Thomas Hounsell 2016-10-03 23:06:40 +01:00
parent fe082872d7
commit 24e12c8741
14 changed files with 110 additions and 73 deletions

1
.gitignore vendored
View File

@ -231,3 +231,4 @@ $RECYCLE.BIN/
*.msm
*.msp
*.pubxml
BuildFeed/settings.config

View File

@ -7,6 +7,8 @@ internal static class DatabaseConfig
public static string Host { get; }
public static int Port { get; }
public static string Database { get; }
public static string Username { get; }
public static string Password { get; }
static DatabaseConfig()
{
@ -25,6 +27,9 @@ static DatabaseConfig()
Database = !string.IsNullOrEmpty(ConfigurationManager.AppSettings["data:MongoDB"])
? ConfigurationManager.AppSettings["data:MongoDB"]
: "MongoAuth";
Username = ConfigurationManager.AppSettings["data:MongoUser"] ?? "";
Password = ConfigurationManager.AppSettings["data:MongoPass"] ?? "";
}
}
}

View File

@ -23,7 +23,6 @@ public class MongoMembershipProvider : MembershipProvider
private int _passwordAttemptWindow = 60;
private bool _requiresUniqueEmail = true;
private MongoClient _dbClient;
private IMongoCollection<MongoMember> _memberCollection;
public override string ApplicationName { get; set; }
@ -64,11 +63,23 @@ public override void Initialize(string name, NameValueCollection config)
_passwordAttemptWindow = TryReadInt(config["passwordAttemptWindow"], _passwordAttemptWindow);
_requiresUniqueEmail = TryReadBool(config["requiresUniqueEmail"], _requiresUniqueEmail);
_dbClient = new MongoClient(new MongoClientSettings
MongoClientSettings settings = new MongoClientSettings
{
Server = new MongoServerAddress(DatabaseConfig.Host, DatabaseConfig.Port)
});
_memberCollection = _dbClient.GetDatabase(DatabaseConfig.Database).GetCollection<MongoMember>(MEMBER_COLLECTION_NAME);
};
if (!string.IsNullOrEmpty(DatabaseConfig.Username) && !string.IsNullOrEmpty(DatabaseConfig.Password))
{
settings.Credentials = new List<MongoCredential>
{
MongoCredential.CreateCredential(DatabaseConfig.Database, DatabaseConfig.Username, DatabaseConfig.Password)
};
}
MongoClient dbClient = new MongoClient(settings);
_memberCollection = dbClient.GetDatabase(DatabaseConfig.Database).GetCollection<MongoMember>(MEMBER_COLLECTION_NAME);
}
public override bool ChangePassword(string username, string oldPassword, string newPassword)

View File

@ -17,7 +17,6 @@ public class MongoRoleProvider : RoleProvider
{
private const string MEMBER_COLLECTION_NAME = "members";
private const string ROLE_COLLECTION_NAME = "roles";
private MongoClient _dbClient;
private IMongoCollection<MongoRole> _roleCollection;
private IMongoCollection<MongoMember> _memberCollection;
@ -31,13 +30,23 @@ public override void Initialize(string name, NameValueCollection config)
{
base.Initialize(name, config);
_dbClient = new MongoClient(new MongoClientSettings
MongoClientSettings settings = new MongoClientSettings
{
Server = new MongoServerAddress(DatabaseConfig.Host, DatabaseConfig.Port)
});
};
_roleCollection = _dbClient.GetDatabase(DatabaseConfig.Database).GetCollection<MongoRole>(ROLE_COLLECTION_NAME);
_memberCollection = _dbClient.GetDatabase(DatabaseConfig.Database).GetCollection<MongoMember>(MEMBER_COLLECTION_NAME);
if (!string.IsNullOrEmpty(DatabaseConfig.Username) && !string.IsNullOrEmpty(DatabaseConfig.Password))
{
settings.Credentials = new List<MongoCredential>
{
MongoCredential.CreateCredential(DatabaseConfig.Database, DatabaseConfig.Username, DatabaseConfig.Password)
};
}
MongoClient dbClient = new MongoClient(settings);
_roleCollection = dbClient.GetDatabase(DatabaseConfig.Database).GetCollection<MongoRole>(ROLE_COLLECTION_NAME);
_memberCollection = dbClient.GetDatabase(DatabaseConfig.Database).GetCollection<MongoMember>(MEMBER_COLLECTION_NAME);
}
public override void AddUsersToRoles(string[] usernames, string[] roleNames)

View File

@ -117,42 +117,24 @@
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<!--
<data name="About_A1" xml:space="preserve">
<value>[!!! ßúïδFèèδ ïƨ řáñ áñδ ₥áïñƭáïñèδ β¥ á ϱřôúƥ ôƒ èñƭλúƨïáƨƭƨ. Mïçřôƨôƒƭ ářè ñôƭ ïñƲôℓƲèδ ïñ ƭλè ƨïƭè ïñ áñ¥ ωá¥. Wè'Ʋè çèřƭáïñℓ¥ λáδ ñô ƒôř₥áℓ çô₥ƥℓáïñƭ ƒřô₥ Mïçřôƨôƒƭ áβôúƭ ƭλè ƨïƭè, èƲèñ ƭλôúϱλ ωè ářè çèřƭáïñ ƭλè¥ ářè áωářè ôƒ ƭλè ƨïƭè. Tλáƭ ƨáïδ, Mïçřôƨôƒƭ ôβƲïôúƨℓ¥ ωïƨλ ƭô ƙèèƥ ƥřïƲáƭè ïñƒôř₥áƭïôñ ƥřïƲáƭè, áñδ ƨô ωè'Ʋè λáδ ƨôúřçèƨ ƨλúƭ δôωñ β¥ ƭλè₥ ïñ ƭλè ƥáƨƭ, áñδ Ì'₥ ƨúřè ƭλè¥ ωïℓℓ ïñ ƭλè ƒúƭúřè. ℓôřè₥ ïƥƨú₥ δôℓôř ƨïƭ á₥èƭ, çôñƨèçƭèƭúř áδïƥïƨçïñϱ èℓïƭ. Núñç èϱèƭ úřñá ℓáôřèèƭ, áççú₥ƨáñ ƒèℓïƨ áƭ, δáƥïβúƨ èℓïƭ. Ìñ úƭ !!!]</value>
<value>A BuildFeedet egy csoport készítette és gondozza. Microsofthoz semmi közze ehhez az oldalhoz. Nem kaptunk még hivatalos panaszt tőlük az oldallal kapcsolatban, pedig tudnak az oldal létezéséről. Microsoft természetesen szeretné a privát információit titkosnak tartani, és már állítottak le információszerző forrásokat a múltban, és biztosak vagyunk benne hogy még fognak a jövőben.</value>
</data>
-->
<!--
<data name="About_A2" xml:space="preserve">
<value>[!!! Nïçè ƭř¥, Ðôñá, βúƭ Ì'₥ ñôƭ ƒáℓℓïñϱ ƒôř ƭλïƨ ôñè. Wλáƭ Ì çáñ ƨᥠïƨ ƭλïƨ. ßúïδFèèδ ₥áƙèƨ áƨ çèřƭáïñ áƨ ïƨ ƥôƨƨïβℓè ƭλáƭ áℓℓ βúïℓδƨ ƥôƨƭèδ ôñ ƭλè ƨïƭè ářè çôřřèçƭ áñδ ℓèϱïƭï₥áƭè. Wè λáƲè á ñú₥βèř ôƒ δèřèñƭ ƨôúřçèƨ, ƭô ₥áƙè Ʋèřïƒïçáƭïôñ ₥ôřè řèℓïáβℓè áñδ ƭô ϱïƲè úƨ ƨô₥è řèδúñδáñç¥ ƨλôúℓδ Mïçřôƨôƒƭ ƨλúƭ δôωñ ôñè ôƒ ôúř ƨôúřçèƨ. ℓôřè₥ ïƥƨú₥ δôℓôř ƨïƭ á₥èƭ, çôñƨèçƭèƭúř áδïƥïƨçïñϱ èℓïƭ. Núñç èϱèƭ úřñá ℓáôřèèƭ, áççú₥ƨáñ ƒèℓïƨ áƭ !!!]</value>
<value>Szép próbálkozás, Dona, de nem adok meg pontos információkat. Amit mondhatunk, a BuildFeed annyira biztos, amennyire lehet, hogy minden build listázva az oldalon helyes és nem hamis. Sok bizonyos forrásunk van, hogy az ellenőrzést biztosabbá tegyék.</value>
</data>
-->
<!--
<data name="About_A3" xml:space="preserve">
<value>[!!! Tλèřè'ƨ á ñú₥βèř ôƒ ωá¥ƨ. Ýôú çáñ δïƨçúƨƨ ƭλè βúïℓδƨ ïñ ƭλè δïƨ9úƨ çô₥₥èñƭƨ ƨ¥ƨƭè₥ ôñ èáçλ βúïℓδ ƥáϱè. Ýôú çáñ áℓƨô çôñƭřïβúƭè ƭô ƭλè ƨïƭè'ƨ δèƲèℓôƥ₥èñƭ β¥ řèƥôřƭïñϱ βúϱƨ ôř ₥áƙïñϱ ƥúℓℓ řè9úèƨƭƨ ôñ ôúř GïƭHúβ. £áƨƭℓ¥, ¥ôú çáñ λèℓƥ ƭřáñƨℓáƭè ßúïδFèèδ ïñƭô ¥ôúř ñáƭïƲè ℓáñϱúáϱè ƭλřôúϱλ ôúř Třáñƨáƭïôñ ƥôřƭáℓ. ℓôřè₥ ïƥƨú₥ δôℓôř ƨïƭ á₥èƭ, çôñƨèçƭèƭúř áδïƥïƨçïñϱ èℓïƭ. Núñç èϱèƭ úřñá ℓáôřèèƭ, áççú₥ƨáñ ƒ !!!]</value>
<value>Sokféleképpen. Tudsz beszélni a buildekről a disqus kommentrendszerben minden build oldalon. Hozzájárulhatsz az oldal fejlesztéséhez, hibákat, bugokat jelezhetsz vagy pull requesteket küldhetsz a GitHubunkon. Végül, tudsz segíteni az oldal fordításában az anyanyelvedre a fordítás oldalunkon.</value>
</data>
-->
<!--
<data name="About_Q1" xml:space="preserve">
<value>[!!! Wλô řúñƨ ßúïδFèèδ? Ìƨ ƭλïƨ áñ ôƒƒïçïáℓ Mïçřôƨôƒƭ ƨïƭè? ℓôřè₥ ïƥƨú₥ δôℓô !!!]</value>
<value>Kié a BuildFeed? Ez egy hivatalos Microsoft oldal?</value>
</data>
-->
<!--
<data name="About_Q2" xml:space="preserve">
<value>[!!! Hôω δôèƨ ßúïδFèèδ ϱèƭ ïƭƨ δáƭá èжáçƭℓ¥? ℓôřè₥ ïƥƨú₥ !!!]</value>
<value>Honnan szerzi az adatokat a BuildFeed?</value>
</data>
-->
<!--
<data name="About_Q3" xml:space="preserve">
<value>[!!! Hôω çáñ Ì ϱèƭ ïñƲôℓƲèδ? ℓôřè₥ !!!]</value>
<value>Hogyan tudok segíteni?</value>
</data>
-->
<data name="Common_AddBuild" xml:space="preserve">
<value>Build hozzáadása</value>
</data>

View File

@ -121,7 +121,7 @@
<value>BuildFeed bir meraklılar topluluğu tarafından işletilir ve bakılır. Microsoft'un bu site ile hiçbir şekilde ilgisi yoktur. Onların bu sitenin farkında olduğundan emin olsak da, site hakkında Microsoft'tan kesinlikle hiçbir resmi şikayete sahip değiliz. Bununla beraber, Microsoft açıkça, gizli bilgileri gizli tutmayı istiyor, ve daha önce onlar tarafından kapatılan kaynaklara sahiptik, bunu yapmaya devam edeceklerinden de eminim.</value>
</data>
<data name="About_A2" xml:space="preserve">
<value>İyi denemeydi Dona, ama bu seferkine düşmüyorum. Şunu söyleyebilirim. BuildFeed, bu siteye gönderilen yapıların doğru ve geçerli olmasını mümkün olduğu kadar kesin hale getirir. Birkaç farklı kaynağımız var, doğrulamayı daha güvenilir yapmak ve Microsoft kaynaklarımızdan birini kaldırırsa diye biraz fazlalık sağlaması için.</value>
<value>İyi denemeydi Dona, ama bu seferkine düşmüyorum. Şunu söyleyebilirim. BuildFeed, bu sitede gönderilen yapıların doğru ve geçerli olmasını mümkün olduğu kadar kesin hale getirir. Birkaç farklı kaynağımız var, doğrulamayı daha güvenilir yapmak ve Microsoft kaynaklarımızdan birini kaldırırsa diye biraz fazlalık sağlaması için.</value>
</data>
<data name="About_A3" xml:space="preserve">
<value>Birkaç yol var. Her yapı sayfasında, Disqus yorum sisteminde yapılar hakkında tartışabilirsiniz. Sitenin gelişimine hata bildirerek veya GitHub sayfamızdan çekme isteğinde bulunarak katkıda bulunabilirsiniz. Son olarak, BuildFeed'i Çeviri portalımızdan kendi anadilinize çevirmek için yardım edebilirsiniz.</value>
@ -169,13 +169,13 @@
<value>Tema</value>
</data>
<data name="Common_RssFeeds" xml:space="preserve">
<value>RSS beslemesi</value>
<value>RSS beslemeleri</value>
</data>
<data name="Common_Sitemap" xml:space="preserve">
<value>Site haritası</value>
</data>
<data name="Common_ThemeDark" xml:space="preserve">
<value>Karanlık</value>
<value>Koyu</value>
</data>
<data name="Common_ThemeLight" xml:space="preserve">
<value>Açık</value>
@ -196,7 +196,7 @@
<value>{0} hakkında</value>
</data>
<data name="Front_BuildsFrom" xml:space="preserve">
<value>{0} laboratuvar etiketinden yapılar</value>
<value>Şundan yapılar: {0}</value>
</data>
<data name="Front_Comments" xml:space="preserve">
<value>Yorumlar</value>
@ -226,13 +226,13 @@
<value>Editör eylemleri</value>
</data>
<data name="Front_FullBuildListing" xml:space="preserve">
<value>Bütün Windows Yapıları listesini gör</value>
<value>Bütün Windows yapıları listesini gör...</value>
</data>
<data name="Front_HomeH1" xml:space="preserve">
<value>Windows yapıları izleyicisi: {0}</value>
</data>
<data name="Front_HomepageH1" xml:space="preserve">
<value>{0} Yapı Listesi</value>
<value>{0} yapı listesi</value>
</data>
<data name="Front_LatestBuilds" xml:space="preserve">
<value>En Son Yapılar</value>
@ -241,7 +241,7 @@
<value>Liste</value>
</data>
<data name="Front_MoreFromLab" xml:space="preserve">
<value>{0} laboratuvar etiketinden daha fazla yapı bul</value>
<value>Şundan daha fazla yapı bul: {0}</value>
</data>
<data name="Front_MoreFromSource" xml:space="preserve">
<value>{0} kaynaklı daha fazla yapı bul</value>
@ -253,7 +253,7 @@
<value>Laboratuvar etiketi yok</value>
</data>
<data name="Front_NumOfBuilds" xml:space="preserve">
<value>{0} Yapı</value>
<value>{0} yapı</value>
</data>
<data name="Front_Private" xml:space="preserve">
<value>Özel</value>
@ -283,7 +283,7 @@
<value>{1} kaynaklı {0} Windows yapısını keşfet. BuildFeed, Windows yapılarını geliştirme süreci boyunca izler.</value>
</data>
<data name="Meta_LabGeneric" xml:space="preserve">
<value>Windows geliştirme laboratuvarlarından çıkan bütün bilinen Windows yapılarını, beraber oluşturulan BuildFeed ile keşfedin</value>
<value>{0} Windows geliştirme laboratuvarından çıkan bütün bilinen yapıları, işbirlikçi Windows yapı listesi, BuildFeed üzerinden kontrol edin.</value>
</data>
<data name="Meta_YearGeneric" xml:space="preserve">
<value>Beraber oluşturulan BuildFeed ile, {0} tarihinde derlenen bütün Windows yapılarının bir listesini görüntüleyin ve Windows'un zamanla nasıl durmadan geliştiğini izleyin</value>
@ -295,7 +295,7 @@
<value>Yapı numarası</value>
</data>
<data name="Model_BuildTime" xml:space="preserve">
<value>Yapı zamanı</value>
<value>Yapının çıkış tarihi</value>
</data>
<data name="Model_ExternalLink" xml:space="preserve">
<value>Dış bağlantı:</value>
@ -352,7 +352,7 @@
<value>Güncelleme (LDR)</value>
</data>
<data name="Search_Build" xml:space="preserve">
<value>Yapı:</value>
<value>Yapı</value>
</data>
<data name="Search_BuildFeed" xml:space="preserve">
<value>BuildFeed'i Araştır...</value>
@ -388,7 +388,7 @@
<value>BuildFeed'e eklemeler:</value>
</data>
<data name="Support_BuildsCompiled" xml:space="preserve">
<value>Derlenen Yapılar:</value>
<value>Derlenen yapılar</value>
</data>
<data name="Support_ChangePassword" xml:space="preserve">
<value>Parolanızı değiştirin:</value>
@ -412,7 +412,7 @@
<value>Parolayı girin</value>
</data>
<data name="Support_HighestVersion" xml:space="preserve">
<value>En yüksek sürüm:</value>
<value>En yüksek sürüm</value>
</data>
<data name="Support_Labs" xml:space="preserve">
<value>Laboratuvarlar</value>

View File

@ -30,10 +30,20 @@ public partial class BuildRepository
public BuildRepository()
{
MongoClient dbClient = new MongoClient(new MongoClientSettings
MongoClientSettings settings = new MongoClientSettings
{
Server = new MongoServerAddress(MongoConfig.Host, MongoConfig.Port)
});
};
if (!string.IsNullOrEmpty(MongoConfig.Username) && !string.IsNullOrEmpty(MongoConfig.Password))
{
settings.Credentials = new List<MongoCredential>
{
MongoCredential.CreateCredential(MongoConfig.Database, MongoConfig.Username, MongoConfig.Password)
};
}
MongoClient dbClient = new MongoClient(settings);
IMongoDatabase buildDatabase = dbClient.GetDatabase(MongoConfig.Database);
_buildCollection = buildDatabase.GetCollection<Build>(BUILD_COLLECTION_NAME);

View File

@ -30,21 +30,30 @@ public class MetaItemModel
public class MetaItem
{
private const string _metaCollectionName = "metaitem";
private const string META_COLLECTION_NAME = "metaitem";
private readonly MongoClient _dbClient;
private readonly IMongoCollection<MetaItemModel> _metaCollection;
private readonly BuildRepository bModel;
private readonly BuildRepository _bModel;
public MetaItem()
{
_dbClient = new MongoClient(new MongoClientSettings
MongoClientSettings settings = new MongoClientSettings
{
Server = new MongoServerAddress(MongoConfig.Host, MongoConfig.Port)
});
};
_metaCollection = _dbClient.GetDatabase(MongoConfig.Database).GetCollection<MetaItemModel>(_metaCollectionName);
bModel = new BuildRepository();
if (!string.IsNullOrEmpty(MongoConfig.Username) && !string.IsNullOrEmpty(MongoConfig.Password))
{
settings.Credentials = new List<MongoCredential>
{
MongoCredential.CreateCredential(MongoConfig.Database, MongoConfig.Username, MongoConfig.Password)
};
}
MongoClient dbClient = new MongoClient(settings);
_metaCollection = dbClient.GetDatabase(MongoConfig.Database).GetCollection<MetaItemModel>(META_COLLECTION_NAME);
_bModel = new BuildRepository();
}
[DataObjectMethod(DataObjectMethodType.Select, false)]
@ -59,7 +68,7 @@ public MetaItem()
[DataObjectMethod(DataObjectMethodType.Select, false)]
public async Task<IEnumerable<string>> SelectUnusedLabs()
{
string[] labs = await bModel.SelectAllLabs();
string[] labs = await _bModel.SelectAllLabs();
List<MetaItemModel> usedLabs = await _metaCollection.Find(f => f.Id.Type == MetaType.Lab).ToListAsync();
@ -71,7 +80,7 @@ where usedLabs.All(ul => ul.Id.Value != l)
[DataObjectMethod(DataObjectMethodType.Select, false)]
public async Task<IEnumerable<string>> SelectUnusedVersions()
{
BuildVersion[] versions = await bModel.SelectAllVersions();
BuildVersion[] versions = await _bModel.SelectAllVersions();
List<MetaItemModel> usedVersions = await _metaCollection.Find(f => f.Id.Type == MetaType.Version).ToListAsync();
@ -83,7 +92,7 @@ where usedVersions.All(ul => ul.Id.Value != v.ToString())
[DataObjectMethod(DataObjectMethodType.Select, false)]
public async Task<IEnumerable<string>> SelectUnusedYears()
{
int[] years = await bModel.SelectAllYears();
int[] years = await _bModel.SelectAllYears();
List<MetaItemModel> usedYears = await _metaCollection.Find(f => f.Id.Type == MetaType.Year).ToListAsync();

View File

@ -7,6 +7,8 @@ public static class MongoConfig
public static string Host { get; }
public static int Port { get; }
public static string Database { get; }
public static string Username { get; }
public static string Password { get; }
static MongoConfig()
{
@ -25,6 +27,9 @@ static MongoConfig()
Database = !string.IsNullOrEmpty(ConfigurationManager.AppSettings["data:MongoDB"])
? ConfigurationManager.AppSettings["data:MongoDB"]
: "MongoAuth";
Username = ConfigurationManager.AppSettings["data:MongoUser"] ?? "";
Password = ConfigurationManager.AppSettings["data:MongoPass"] ?? "";
}
public static void SetupIndexes()

View File

@ -1,7 +1,7 @@

Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio 14
VisualStudioVersion = 14.0.25420.1
# Visual Studio 15
VisualStudioVersion = 15.0.25618.0
MinimumVisualStudioVersion = 10.0.40219.1
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "BuildFeed", "BuildFeed\BuildFeed.csproj", "{CDDCF754-ECAA-4A66-ADAA-62957A57A51B}"
EndProject

View File

@ -406,6 +406,9 @@
<Content Include="Scripts\trumbowyg\ui\sass\_sprite-white.scss" />
<Content Include="Views\front\Index.cshtml" />
<Content Include="Scripts\jquery-2.2.4.min.map" />
<Content Include="settings.config">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</Content>
</ItemGroup>
<ItemGroup />
<ItemGroup>

View File

@ -118,7 +118,7 @@
{
@Html.LabelFor(model => model.LeakDate)
<div class="build-details-flex-value">
<time datetime="@Model.LeakDate.Value.ToString("yyyy-MM-dd")" title="@Model.LeakDate.Value.ToString("dddd, d MMMM yyyy")">@Html.DisplayFor(model => model.LeakDate, "{0:dd/MM/yyyy}")</time>
<time datetime="@Model.LeakDate.Value.ToString("yyyy-MM-dd")" title="@Model.LeakDate.Value.ToLongDateString()">@Model.LeakDate.Value.ToShortDateString()</time>
</div>
}
</div>

View File

@ -187,7 +187,8 @@
<p>
<a href="@Url.Action(nameof(SupportController.Sitemap), new
{
controller = "Support"
controller = "Support",
area = ""
})">@VariantTerms.Common_Sitemap</a>
</p>
<p>
@ -195,7 +196,8 @@
@CultureInfo.CurrentUICulture.NativeName
(<a href="@Url.Action(nameof(SupportController.Credits), new
{
controller = "Support"
controller = "Support",
area = ""
})">
@VariantTerms.Common_Credits
</a>)

View File

@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<appSettings>
<appSettings file="settings.config">
<add key="webpages:Version" value="3.0.0.0" />
<add key="webpages:Enabled" value="false" />
<add key="PreserveLoginUrl" value="true" />