public int[] GetAvailableLocaleIds()
{
ThrowIfNotConnected();
List<int> localeIds = new List<int>();
localeIds.Add(ComUtils.LOCALE_SYSTEM_DEFAULT);
try
{
lock (m_lock)
{
DataValue value = m_session.ReadValue(Opc.Ua.VariableIds.Server_ServerCapabilities_LocaleIdArray);
string[] locales = value.GetValue<string[]>(null);
for (int ii = 0; ii < locales.Length; ii++)
{
try
{
CultureInfo culture = CultureInfo.GetCultureInfo(locales[ii]);
if (culture != null)
{
localeIds.Add(culture.LCID);
}
}
catch (Exception)
{
// ignore invalid locales.
}
}
}
}
catch (Exception)
{
// ignore network errors.
}
return localeIds.ToArray();
}