Skip to content

Commit a768c5a

Browse files
author
Musa Demir
committed
add GetActiveLanguages method
1 parent 95bf87a commit a768c5a

File tree

7 files changed

+51
-0
lines changed

7 files changed

+51
-0
lines changed

src/Abp.Zero.Common/Localization/ApplicationLanguageManager.cs

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -57,6 +57,11 @@ public virtual async Task<IReadOnlyList<ApplicationLanguage>> GetLanguagesAsync(
5757
return (await GetLanguageDictionaryAsync(tenantId)).Values.ToImmutableList();
5858
}
5959

60+
public virtual async Task<IReadOnlyList<ApplicationLanguage>> GetActiveLanguagesAsync(int? tenantId)
61+
{
62+
return (await GetLanguagesAsync(tenantId)).Where(l => !l.IsDisabled).ToImmutableList();
63+
}
64+
6065
/// <summary>
6166
/// Gets list of all languages available to given tenant (or null for host)
6267
/// </summary>
@@ -66,6 +71,11 @@ public virtual IReadOnlyList<ApplicationLanguage> GetLanguages(int? tenantId)
6671
return (GetLanguageDictionary(tenantId)).Values.ToImmutableList();
6772
}
6873

74+
public virtual IReadOnlyList<ApplicationLanguage> GetActiveLanguages(int? tenantId)
75+
{
76+
return GetLanguages(tenantId).Where(l => !l.IsDisabled).ToImmutableList();
77+
}
78+
6979
/// <summary>
7080
/// Adds a new language.
7181
/// </summary>

src/Abp.Zero.Common/Localization/ApplicationLanguageProvider.cs

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -57,6 +57,20 @@ public IReadOnlyList<LanguageInfo> GetLanguages()
5757

5858
return languageInfos;
5959
}
60+
/// <summary>
61+
/// Gets the active languages for current tenant.
62+
/// </summary>
63+
public IReadOnlyList<LanguageInfo> GetActiveLanguages()
64+
{
65+
var languageInfos = _applicationLanguageManager.GetLanguages(AbpSession.TenantId)
66+
.OrderBy(l => l.DisplayName)
67+
.Select(l => l.ToLanguageInfo())
68+
.ToList();
69+
70+
SetDefaultLanguage(languageInfos);
71+
72+
return languageInfos;
73+
}
6074

6175
private async Task SetDefaultLanguageAsync(List<LanguageInfo> languageInfos)
6276
{

src/Abp.Zero.Common/Localization/IApplicationLanguageManager.cs

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,12 +14,24 @@ public interface IApplicationLanguageManager
1414
/// <param name="tenantId">TenantId or null for host</param>
1515
Task<IReadOnlyList<ApplicationLanguage>> GetLanguagesAsync(int? tenantId);
1616

17+
/// <summary>
18+
/// Gets list of all active languages available to given tenant (or null for host)
19+
/// </summary>
20+
/// <param name="tenantId">TenantId or null for host</param>
21+
Task<IReadOnlyList<ApplicationLanguage>> GetActiveLanguagesAsync(int? tenantId);
22+
1723
/// <summary>
1824
/// Gets list of all languages available to given tenant (or null for host)
1925
/// </summary>
2026
/// <param name="tenantId">TenantId or null for host</param>
2127
IReadOnlyList<ApplicationLanguage> GetLanguages(int? tenantId);
2228

29+
/// <summary>
30+
/// Gets list of all active languages available to given tenant (or null for host)
31+
/// </summary>
32+
/// <param name="tenantId">TenantId or null for host</param>
33+
IReadOnlyList<ApplicationLanguage> GetActiveLanguages(int? tenantId);
34+
2335
/// <summary>
2436
/// Adds a new language.
2537
/// </summary>

src/Abp/Localization/DefaultLanguageProvider.cs

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
using System.Collections.Generic;
22
using System.Collections.Immutable;
3+
using System.Linq;
34
using Abp.Configuration.Startup;
45
using Abp.Dependency;
56

@@ -18,5 +19,10 @@ public IReadOnlyList<LanguageInfo> GetLanguages()
1819
{
1920
return _configuration.Languages.ToImmutableList();
2021
}
22+
23+
public IReadOnlyList<LanguageInfo> GetActiveLanguages()
24+
{
25+
return _configuration.Languages.Where(l => !l.IsDisabled).ToImmutableList();
26+
}
2127
}
2228
}

src/Abp/Localization/ILanguageManager.cs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,5 +7,7 @@ public interface ILanguageManager
77
LanguageInfo CurrentLanguage { get; }
88

99
IReadOnlyList<LanguageInfo> GetLanguages();
10+
11+
IReadOnlyList<LanguageInfo> GetActiveLanguages();
1012
}
1113
}

src/Abp/Localization/ILanguageProvider.cs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,5 +5,7 @@ namespace Abp.Localization
55
public interface ILanguageProvider
66
{
77
IReadOnlyList<LanguageInfo> GetLanguages();
8+
9+
IReadOnlyList<LanguageInfo> GetActiveLanguages();
810
}
911
}

src/Abp/Localization/LanguageManager.cs

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,11 @@ public IReadOnlyList<LanguageInfo> GetLanguages()
2222
return _languageProvider.GetLanguages();
2323
}
2424

25+
public IReadOnlyList<LanguageInfo> GetActiveLanguages()
26+
{
27+
return _languageProvider.GetActiveLanguages();
28+
}
29+
2530
private LanguageInfo GetCurrentLanguage()
2631
{
2732
var languages = _languageProvider.GetLanguages();

0 commit comments

Comments
 (0)