Skip to content

Commit

Permalink
- OCConnection: Accept-Language now correctly formats language codes …
Browse files Browse the repository at this point in the history
…with region/country variant additions, addressing owncloud/ios-app#1193
  • Loading branch information
felix-schwarz committed Mar 27, 2023
1 parent 3010676 commit cde5b86
Showing 1 changed file with 16 additions and 2 deletions.
18 changes: 16 additions & 2 deletions ownCloudSDK/Locale/OCLocale+SystemLanguage.m
Original file line number Diff line number Diff line change
Expand Up @@ -23,13 +23,27 @@ @implementation OCLocale (SystemLanguage)
#pragma mark - Locale
- (NSString *)acceptLanguageString
{
NSArray <NSString *> *preferredLocalizations = [NSBundle preferredLocalizationsFromArray:[[NSBundle mainBundle] localizations] forPreferences:nil];
NSArray <NSString *> *preferredLocalizations = [NSBundle preferredLocalizationsFromArray:NSBundle.mainBundle.localizations forPreferences:nil];

if (preferredLocalizations.count > 0)
{
NSString *acceptLanguage;
NSMutableArray<NSString *> *iso6391Languages = [NSMutableArray new];

if ((acceptLanguage = [[preferredLocalizations componentsJoinedByString:@", "] lowercaseString]) != nil)
for (NSString *preferredLocalization in preferredLocalizations)
{
if (preferredLocalization.length > 2)
{
// Ensure that codes are formatted correctly (f.ex. en-US rather than en_US)
[iso6391Languages addObject:[preferredLocalization stringByReplacingOccurrencesOfString:@"_" withString:@"-"]];
}
else
{
[iso6391Languages addObject:preferredLocalization];
}
}

if ((acceptLanguage = [iso6391Languages componentsJoinedByString:@","].lowercaseString) != nil)
{
return (acceptLanguage);
}
Expand Down

0 comments on commit cde5b86

Please sign in to comment.