Thanks Jan.

I was spacing out and had thought the set_lang script was part of OS and 
not our code.

Doh!



jan damborsky wrote:
> Hi Joe,
> 
> 
> On 03/19/09 16:22, Joseph J VLcek wrote:
>> Setting the default "keyboard layout" and "desktop language" are part 
>> of the fix for bug6431.
>>
>> http://defect.opensolaris.org/bz/show_bug.cgi?id=6431
>>
>> Setting the default "keyboard layout" is trivial since "kbd -s" 
>> accepts  an argument. Setting the keyboard laytout to the default of 
>> English can be accomplished with the following command:
>>
>>     /usr/bin/kbd -s US-English
>>
>> Setting the default "desktop language" is not as trivial since the 
>> set_lang command does not accept an argument and requires user input. 
>> I have 2 possible solutions, both work. I wanted to know what folks 
>> feel is the best solution.
>>
>> Solution 1:
>>     Use the set_lang command and echo the selection number associated 
>> with English.
>>     e.g.:
>>     echo 3 | set_lang
>>
>>     The downside to this approach is if the menu presented by the 
>> set_lang command changes and "3" is no longer associated with English.
>>
>> Solution 2:
>>     Do what the set_lang command does:
>> create the directory /etc/sysconfig then echo the value for English 
>> into file: /etc/sysconfig/language
>>
>>     e.g.:
>>     mkdir -p "/etc/sysconfig"
>>     echo "RC_LANG=en_US.UTF.8" > /etc/sysconfig/language"
>>
>> This seems to me to be the safer of the 2 solutions.
>>
>> Thoughts?
> 
> Looking at the set_lang script, it seems that it already contains
> necessary stuff to correctly determine value for default choice (English).
> Based on this, I am thinking about one more possibility - set_lang script
> might be enhanced to accept one parameter - if set to 'default',
> interactive section would be just skipped and default determined by
> set_lang would be set. It might look like (full script is attached,
> but not polished :-):
> 
> $ diff -u cmd/slim-install/config/set_lang /tmp/set_lang
> --- cmd/slim-install/config/set_lang    Tue Mar 17 15:38:33 2009
> +++ /tmp/set_lang    Thu Mar 19 18:48:58 2009
> @@ -40,6 +40,8 @@
> # external file contains fixedlist
> typeset -r fixedlistfile='/usr/share/gui-install/langs_localized'
> 
> +[ ${#*} -eq 1 -a $1="default" ] && pickup_default_choice=true
> +
> # Read integer value. Don't alter the choice for invalid input.
> # Added for "compatibilty" to "/usr/bin/kbd -s".
> # Note: This is different from other curses/ncurses/GTK+/Motif behaviour.
> @@ -166,6 +168,8 @@
> 
> # Prompt user to select language and check for valid entry
> integer choice=${languages.default}
> +
> +if [ "$pickup_default_choice" == "" ] ; then
> while true ; do
>     readintval choice $"To select desktop language, enter a number 
> [default is ${languages.default}]: " || continue
> 
> @@ -174,6 +178,7 @@
> done
> 
> printf "User selected: %s\n" "${languages.list[choice-1].name}"
> +fi
> 
> mkdir -p "/etc/sysconfig"
> 
> 
> The call in live-fs-root would be for this case:
> 
> ...
> /usr/sbin/set_lang default
> ...
> 
> Cheers,
> Jan
> 


Reply via email to