2 /*****************************************************************************
3 * darwin_specific.m: Darwin specific features
4 *****************************************************************************
5 * Copyright (C) 2001-2009 VLC authors and VideoLAN
8 * Authors: Sam Hocevar <sam@zoy.org>
9 * Christophe Massiot <massiot@via.ecp.fr>
10 * Pierre d'Herbemont <pdherbemont@free.fr>
12 * This program is free software; you can redistribute it and/or modify it
13 * under the terms of the GNU Lesser General Public License as published by
14 * the Free Software Foundation; either version 2.1 of the License, or
15 * (at your option) any later version.
17 * This program is distributed in the hope that it will be useful,
18 * but WITHOUT ANY WARRANTY; without even the implied warranty of
19 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
20 * GNU Lesser General Public License for more details.
22 * You should have received a copy of the GNU Lesser General Public License
23 * along with this program; if not, write to the Free Software Foundation,
24 * Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
25 *****************************************************************************/
31 #include <vlc_common.h>
32 #include "../libvlc.h"
33 #include <dirent.h> /* *dir() */
34 #include <CoreFoundation/CoreFoundation.h>
40 /*****************************************************************************
41 * system_Init: fill in program path & retrieve language
42 *****************************************************************************/
43 void system_Init(void)
46 /* Check if $LANG is set. */
47 if( NULL
== getenv("LANG") )
50 Retrieve the preferred language as chosen in System Preferences.app
51 (note that CFLocaleCopyCurrent() is not used because it returns the
52 preferred locale not language)
54 CFArrayRef all_locales
, preferred_locales
;
57 all_locales
= CFLocaleCopyAvailableLocaleIdentifiers();
59 preferred_locales
= CFBundleCopyLocalizationsForPreferences( all_locales
, NULL
);
61 if ( preferred_locales
)
63 if ( CFArrayGetCount( preferred_locales
) )
65 CFStringRef user_language_string_ref
= CFArrayGetValueAtIndex( preferred_locales
, 0 );
66 CFStringGetCString( user_language_string_ref
, psz_locale
, sizeof(psz_locale
), kCFStringEncodingUTF8
);
67 setenv( "LANG", psz_locale
, 1 );
69 CFRelease( preferred_locales
);
71 CFRelease( all_locales
);
76 /*****************************************************************************
77 * system_Configure: check for system specific configuration options.
78 *****************************************************************************/
79 void system_Configure( libvlc_int_t
*p_this
,
80 int i_argc
, const char *const ppsz_argv
[] )