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 >
