diff options
-rw-r--r-- | unotools/source/config/useroptions.cxx | 38 |
1 files changed, 32 insertions, 6 deletions
diff --git a/unotools/source/config/useroptions.cxx b/unotools/source/config/useroptions.cxx index 0f9299121f8e..6fab07777503 100644 --- a/unotools/source/config/useroptions.cxx +++ b/unotools/source/config/useroptions.cxx @@ -18,7 +18,7 @@ */ #include <unotools/useroptions.hxx> - +#include <unotools/syslocale.hxx> #include <unotools/configmgr.hxx> #include <com/sun/star/uno/Any.hxx> #include <com/sun/star/uno/Sequence.hxx> @@ -37,6 +37,7 @@ #include <com/sun/star/util/ChangesEvent.hpp> #include <comphelper/configurationhelper.hxx> #include <comphelper/processfactory.hxx> +#include <i18nlangtag/mslangid.hxx> using namespace utl; using namespace com::sun::star; @@ -194,11 +195,36 @@ void SvtUserOptions::Impl::SetToken (sal_uInt16 nToken, OUString const& sToken) OUString SvtUserOptions::Impl::GetFullName () const { - // TODO international name - OUString sFullName = GetToken(USER_OPT_FIRSTNAME).trim(); - if (!sFullName.isEmpty()) - sFullName += " "; - sFullName += GetToken(USER_OPT_LASTNAME).trim(); + OUString sFullName; + switch (LanguageType const eLang = SvtSysLocale().GetUILanguageTag().getLanguageType()) + { + case LANGUAGE_RUSSIAN: + sFullName = GetToken(USER_OPT_FIRSTNAME).trim(); + if (!sFullName.isEmpty()) + sFullName += " "; + sFullName += GetToken(USER_OPT_FATHERSNAME).trim(); + if (!sFullName.isEmpty()) + sFullName += " "; + sFullName += GetToken(USER_OPT_LASTNAME).trim(); + break; + default: + if (MsLangId::isFamilyNameFirst(eLang)) + { + sFullName = GetToken(USER_OPT_LASTNAME).trim(); + if (!sFullName.isEmpty()) + sFullName += " "; + sFullName += GetToken(USER_OPT_FIRSTNAME).trim(); + } + else + { + sFullName = GetToken(USER_OPT_FIRSTNAME).trim(); + if (!sFullName.isEmpty()) + sFullName += " "; + sFullName += GetToken(USER_OPT_LASTNAME).trim(); + } + break; + } + return sFullName; } |