diff --git a/libtransmission/utils.c b/libtransmission/utils.c index 3826d8fbd..b3338f30a 100644 --- a/libtransmission/utils.c +++ b/libtransmission/utils.c @@ -60,6 +60,33 @@ void tr_msgInit( void ) messageLock = tr_lockNew( ); } +/* +#if defined(SYS_DARWIN) + +const char * tr_getMacLocalizedCString(CFStringRef string) +{ + //if you need to be thread safe, add proper locks around that + static CFMutableDictionaryRef mapping = NULL; + if( mapping == NULL ) + { + mapping = CFDictionaryCreateMutable(NULL, 0, &kCFTypeDictionaryKeyCallBacks, NULL); + } + + const char * result = (const char *)CFDictionaryGetValue(mapping, string); + if( result == NULL ) + { + CFStringRef localizedString = CFCopyLocalizedStringFromTable(string, CFSTR("LibraryLocalizable"), NULL); + result = (const char *)malloc(CFStringGetMaximumSizeForEncoding(CFStringGetLength(localizedString), kCFStringEncodingUTF8)); + CFStringGetCString(localizedString, (char *)result, CFStringGetLength(localizedString)+1, kCFStringEncodingUTF8); + CFDictionarySetValue(mapping, string, result); + } + + return result; +} + +#endif +*/ + FILE* tr_getLog( void ) { diff --git a/libtransmission/utils.h b/libtransmission/utils.h index fc28982bf..be0ffef7d 100644 --- a/libtransmission/utils.h +++ b/libtransmission/utils.h @@ -34,9 +34,12 @@ void tr_msgInit( void ); #if !defined(_) #if defined(SYS_DARWIN) - #include - #define _(a) CFStringGetCStringPtr(CFCopyLocalizedStringFromTable( \ - CFSTR( a ), CFSTR("LibraryLocalizable"), "comment" ), kCFStringEncodingMacRoman) + /*#include + + const char * tr_getMacLocalizedCString(CFStringRef string); + + #define _(a) tr_getMacLocalizedCString(CFSTR(a))*/ + #define _(a) (a) #else #include #define _(a) gettext (a)