diff --git a/src/translations.cpp b/src/translations.cpp index 488b9abab45d2..f7eff7ad15d7c 100644 --- a/src/translations.cpp +++ b/src/translations.cpp @@ -698,5 +698,12 @@ std::string operator+( const translation &lhs, const translation &rhs ) bool localized_comparator::operator()( const std::string &l, const std::string &r ) const { +#if defined(MACOSX) + CFStringRef lr = CFStringCreateWithCStringNoCopy( kCFAllocatorDefault, l.c_str(), + kCFStringEncodingUTF8, kCFAllocatorNull ); + CFStringRef rr = CFStringCreateWithCStringNoCopy( kCFAllocatorDefault, r.c_str(), + kCFStringEncodingUTF8, kCFAllocatorNull ); + return CFStringCompare( lr, rr, kCFCompareLocalized ) < 0; +#endif return std::locale()( l, r ); }