Hi Joe,

On 03/19/09 19:02, Joseph J VLcek wrote:
> Thanks Jan.
>
> I was spacing out and had thought the set_lang script was part of OS 
> and not our code.

to be honest, this is the first time I am glad that
set_lang script resides in slim_source gate - feel
free to take advantage of this :-)

Jan

>
> 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