summaryrefslogtreecommitdiff
path: root/unotools/source/config/useroptions.cxx
diff options
context:
space:
mode:
Diffstat (limited to 'unotools/source/config/useroptions.cxx')
-rw-r--r--unotools/source/config/useroptions.cxx38
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;
}