diff --git a/DNN Platform/Website/Install/App_LocalResources/Installwizard.aspx.resx b/DNN Platform/Website/Install/App_LocalResources/Installwizard.aspx.resx
index 58888fa1127..d6a76cebea4 100644
--- a/DNN Platform/Website/Install/App_LocalResources/Installwizard.aspx.resx
+++ b/DNN Platform/Website/Install/App_LocalResources/Installwizard.aspx.resx
@@ -490,6 +490,36 @@ Standard Database setup option is unavailable
Password is required.
+
+ fair
+
+
+ -character minimum
+
+
+ strong
+
+
+ weak
+
+
+ Validation Expression: {0}
+
+
+ At least {0} non-alphanumeric characters
+
+
+ At least {0} characters
+
+
+ Password Policy:
+
+
+ Password does not match
+
+
+ Password Matched
+
Username is required.
@@ -546,4 +576,4 @@ Using Windows Explorer, browse to the folders of your website ( {0} ). Right-cli
Could not find site {0} to set HTTPS
-
\ No newline at end of file
+
diff --git a/DNN Platform/Website/Install/App_LocalResources/Installwizard.aspx.tr-TR.resx b/DNN Platform/Website/Install/App_LocalResources/Installwizard.aspx.tr-TR.resx
index fa8a6bde22d..eb23a282f04 100644
--- a/DNN Platform/Website/Install/App_LocalResources/Installwizard.aspx.tr-TR.resx
+++ b/DNN Platform/Website/Install/App_LocalResources/Installwizard.aspx.tr-TR.resx
@@ -59,8 +59,8 @@
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
-
-
+
+
@@ -307,7 +307,7 @@
Websitesi için kullanmak istediğiniz dil.
- SuperUser hesabının şifresi.
+ Süper Kullanıcı hesabının şifresi.
Süper Kullanıcı hesabı için kullanıcı adı.
@@ -470,7 +470,7 @@ Standart Veritabanı kurulum seçeneği mevcut değil
Parolalar eşleşmiyor.
- Onay parolası gereklidir.
+ Parolayı onaylamanız gereklidir.
Veritabanı dosya adı gereklidir.
@@ -490,6 +490,42 @@ Standart Veritabanı kurulum seçeneği mevcut değil
Şifre gereklidir.
+
+ orta
+
+
+ karakter minimum
+
+
+ güçlü
+
+
+ zayıf
+
+
+ Şifre eşleşmiyor
+
+
+ Şifre Eşleşti
+
+
+ Doğrulama İfadesi: {0}
+
+
+ En az {0} alfasayısal olmayan karakter
+
+
+ En az {0} karakter
+
+
+ Şifre Politikası:
+
+
+ Şifre eşleşmiyor
+
+
+ Şifre Eşleşti
+
Kullanıcı adı zorunludur.
@@ -499,6 +535,14 @@ Standart Veritabanı kurulum seçeneği mevcut değil
Ana bilgisayar adınız yasaklı karakterler içeriyor (yalnızca a-Z, 0-9, - ve . izin verilir). Kullandığınız ana bilgisayar adını değiştirmelisiniz.
+
+ <div class="permission"><img alt="Web sitesinin kök klasörü için güvenlik ayarlarını gösteren resim, ASPNET veya NT AUTHORITY/NETWORK SERVICE hesapları için Okuma, Yazma ve Değiştirme Kontrolü olarak ayarlanmalıdır." src="..\403-3.gif" align="right" hspace="10"/>
+<p><b><font color='red'>Siteniz izin kontrolünü geçemedi.</font></b></p>
+Windows Gezgini'ni kullanarak web sitenizin klasörlerine gidin ( {0} ). Klasörün üzerine sağ tıklayın ve açılır menüden Paylaşım ve Güvenlik'i seçin. Güvenlik sekmesini seçin. Uygun Kullanıcı Hesabını ekleyin ve İzinleri ayarlayın.
+<br/><br/>
+<h3>Windows 8 veya daha yeni, Windows Server 2008 R2 veya daha yeni ve IIS7.5 veya daha yeni kullanılıyorsa</h3>
+<p>IIS AppPool\DefaultAppPool Kullanıcı Hesabının Web Sitesinin sanal kökünde Okuma, Yazma ve Değiştirme Kontrolüne sahip olması gerekir.</p><p><a class="dnnPrimaryAction" href="">Tekrar Kontrol Et</a></p></div>
+
Yükleme Sürümü Ekleme
@@ -538,12 +582,4 @@ Standart Veritabanı kurulum seçeneği mevcut değil
Site {0} bulunamadı, HTTPS ayarlanamadı
-
- <div class="permission"><img alt="Web sitesinin kök klasörü için güvenlik ayarlarını gösteren resim, ASPNET veya NT AUTHORITY/NETWORK SERVICE hesapları için Okuma, Yazma ve Değiştirme Kontrolü olarak ayarlanmalıdır." src="..\403-3.gif" align="right" hspace="10"/>
-<p><b><font color='red'>Siteniz izin kontrolünü geçemedi.</font></b></p>
-Windows Gezgini'ni kullanarak web sitenizin klasörlerine gidin ( {0} ). Klasörün üzerine sağ tıklayın ve açılır menüden Paylaşım ve Güvenlik'i seçin. Güvenlik sekmesini seçin. Uygun Kullanıcı Hesabını ekleyin ve İzinleri ayarlayın.
-<br/><br/>
-<h3>Windows 8 veya daha yeni, Windows Server 2008 R2 veya daha yeni ve IIS7.5 veya daha yeni kullanılıyorsa</h3>
-<p>IIS AppPool\DefaultAppPool Kullanıcı Hesabının Web Sitesinin sanal kökünde Okuma, Yazma ve Değiştirme Kontrolüne sahip olması gerekir.</p><p><a class="dnnPrimaryAction" href="">Tekrar Kontrol Et</a></p></div>
-
-
\ No newline at end of file
+
diff --git a/DNN Platform/Website/Install/InstallWizard.aspx b/DNN Platform/Website/Install/InstallWizard.aspx
index 205119cd786..5f32a13289e 100644
--- a/DNN Platform/Website/Install/InstallWizard.aspx
+++ b/DNN Platform/Website/Install/InstallWizard.aspx
@@ -505,7 +505,8 @@
this.install = function () {
$.startProgressbar();
//Call PageMethod which triggers long running operation
- PageMethods.RunInstall(function () {
+ PageMethods.RunInstall($("#PageLocale")[0].value, function () {
+
}, function (err) {
if (err._statusCode === 500 && !err._stackTrace) { //the error thrown by azure proxy, then need ignore.
return;
@@ -825,7 +826,7 @@
var installationLogStartLine = 0;
var getInstallationLog = function () {
- PageMethods.GetInstallationLog(installationLogStartLine, function (result) {
+ PageMethods.GetInstallationLog(installationLogStartLine, $("#PageLocale")[0].value, function (result) {
if (result) {
if (installationLogStartLine === 0)
$('#installation-log').html(result);
diff --git a/DNN Platform/Website/Install/InstallWizard.aspx.cs b/DNN Platform/Website/Install/InstallWizard.aspx.cs
index b711bcb00b2..7c18a2de764 100644
--- a/DNN Platform/Website/Install/InstallWizard.aspx.cs
+++ b/DNN Platform/Website/Install/InstallWizard.aspx.cs
@@ -227,18 +227,20 @@ private static string StatusFile
}
/// Runs the installer.
+ /// The culture selected by the user in the wizard UI (from the PageLocale field), used as the source of truth for localization since the static culture field does not survive an AppDomain restart.
[WebMethod]
- public static void RunInstall()
+ public static void RunInstall(string cultureCode)
{
installerRunning = false;
- LaunchAutoInstall(Globals.GetCurrentServiceProvider().GetRequiredService());
+ LaunchAutoInstall(Globals.GetCurrentServiceProvider().GetRequiredService(), cultureCode);
}
/// Gets the installation log.
/// At which line to start obtaining log lines.
+ /// The culture selected by the user in the wizard UI (from the PageLocale field), used as the source of truth for localization since the static culture field does not survive an AppDomain restart.
/// Log string from the provided line number forward.
[WebMethod]
- public static object GetInstallationLog(int startRow)
+ public static object GetInstallationLog(int startRow, string cultureCode)
{
const int maxLines = 500;
var logFile = InstallController.Instance.InstallerLogName;
@@ -278,7 +280,10 @@ public static object GetInstallationLog(int startRow)
if (!errorLogged)
{
- return Localization.GetString("NoErrorsLogged", "~/Install/App_LocalResources/InstallWizard.aspx.resx");
+ return Localization.GetString(
+ "NoErrorsLogged",
+ "~/Install/App_LocalResources/InstallWizard.aspx.resx",
+ !string.IsNullOrEmpty(cultureCode) ? cultureCode : culture);
}
return sb.ToString();
@@ -580,6 +585,20 @@ protected override void OnPreRender(EventArgs e)
this.txtPassword.CssClass = "password-strength";
var options = new DnnPaswordStrengthOptions();
+
+ // The Install Wizard cannot assume App_GlobalResources/WebControls.resx
+ // (which DnnPaswordStrengthOptions reads by default) has been translated
+ // for the selected culture at install time. Override with this page's
+ // own local resource file, consistent with every other string on this page.
+ options.MinLengthText = this.LocalizeString("PasswordStrengthMinLength");
+ options.WeakText = this.LocalizeString("PasswordStrengthWeak");
+ options.FairText = this.LocalizeString("PasswordStrengthFair");
+ options.StrongText = this.LocalizeString("PasswordStrengthStrong");
+ options.CriteriaAtLeastNCharsText = this.LocalizeString("CriteriaAtLeastNChars");
+ options.CriteriaAtLeastNSpecialCharsText = this.LocalizeString("CriteriaAtLeastNSpecialChars");
+ options.CriteriaValidationExpressionText = this.LocalizeString("CriteriaValidationExpression");
+ options.PasswordRulesHeadText = this.LocalizeString("PasswordRulesHeadText");
+
var optionsAsJsonString = Json.Serialize(options);
var script = string.Format(
"dnn.initializePasswordStrength('.{0}', {1});{2}",
@@ -597,6 +616,8 @@ protected override void OnPreRender(EventArgs e)
ContainerSelector = ".dnnFormPassword",
UnmatchedCssClass = "unmatched",
MatchedCssClass = "matched",
+ ConfirmPasswordUnmatchedText = this.LocalizeString("ConfirmPasswordUnmatched"),
+ ConfirmPasswordMatchedText = this.LocalizeString("ConfirmPasswordMatched"),
};
var confirmOptionsAsJsonString = Json.Serialize(confirmPasswordOptions);
@@ -636,7 +657,7 @@ protected override void OnLoad(EventArgs e)
try
{
installerRunning = true;
- LaunchAutoInstall(this.appStatus);
+ LaunchAutoInstall(this.appStatus, culture);
}
catch (Exception)
{
@@ -648,7 +669,7 @@ protected override void OnLoad(EventArgs e)
{
if (installerRunning)
{
- LaunchAutoInstall(this.appStatus);
+ LaunchAutoInstall(this.appStatus, culture);
}
else
{
@@ -716,7 +737,7 @@ protected override void OnLoad(EventArgs e)
}
}
- private static void LaunchAutoInstall(IApplicationStatusInfo appStatus)
+ private static void LaunchAutoInstall(IApplicationStatusInfo appStatus, string cultureCode = null)
{
if (appStatus.Status == UpgradeStatus.None)
{
@@ -730,9 +751,12 @@ private static void LaunchAutoInstall(IApplicationStatusInfo appStatus)
// Set Script timeout to MAX value
HttpContext.Current.Server.ScriptTimeout = int.MaxValue;
- if (culture != null)
+ // Prefer the culture passed in explicitly (e.g. from the client's PageLocale field) over the
+ // static culture field, which does not survive an AppDomain restart triggered mid-install.
+ var effectiveCulture = !string.IsNullOrEmpty(cultureCode) ? cultureCode : culture;
+ if (effectiveCulture != null)
{
- Thread.CurrentThread.CurrentUICulture = new CultureInfo(culture);
+ Thread.CurrentThread.CurrentUICulture = new CultureInfo(effectiveCulture);
}
Install(appStatus);
diff --git a/DNN Platform/Website/Install/InstallWizard.aspx.designer.cs b/DNN Platform/Website/Install/InstallWizard.aspx.designer.cs
index ab6406630be..91e7a91441b 100644
--- a/DNN Platform/Website/Install/InstallWizard.aspx.designer.cs
+++ b/DNN Platform/Website/Install/InstallWizard.aspx.designer.cs
@@ -140,6 +140,15 @@ public partial class InstallWizard
///
protected global::System.Web.UI.WebControls.LinkButton lang_nl_NL;
+ ///
+ /// lang_tr_TR control.
+ ///
+ ///
+ /// Auto-generated field.
+ /// To modify move field declaration from designer file to code-behind file.
+ ///
+ protected global::System.Web.UI.WebControls.LinkButton lang_tr_TR;
+
///
/// lblDotNetNukeInstalltion control.
///
@@ -777,7 +786,7 @@ public partial class InstallWizard
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
///
- protected global::System.Web.UI.HtmlControls.HtmlInputHidden __dnnVariable;
+ protected global::System.Web.UI.HtmlControls.HtmlInputHidden @__dnnVariable;
///
/// PageLocale control.