mc/m4.include/mc-i18n.m4

45 lines
1.3 KiB
Plaintext
Raw Normal View History

dnl @synopsis mc_I18N
dnl
dnl Check if environment is ready for get translations of docs from transifex
dnl
dnl @author Slava Zanko <slavazanko@gmail.com>
dnl @version 2011-02-10
dnl @license GPL
dnl @copyright Free Software Foundation, Inc.
AC_DEFUN([mc_I18N],[
dnl User visible support for charset conversion.
AC_ARG_ENABLE([charset],
AS_HELP_STRING([--enable-charset], [Support for charset selection and conversion @<:@yes@:>@]))
have_charset=
charset_msg="no"
if test "x$enable_charset" != "xno"; then
AC_DEFINE(HAVE_CHARSET, 1, [Define to enable charset selection and conversion])
have_charset=yes
charset_msg="yes"
charset: rename IBM866 to CP866 for iconv and adjust charset names for codeset ``` linux $ iconv -l | grep 866 866// 866NAV// CP866// CP866NAV// CSIBM866// IBM866// IBM866NAV// solaris $ iconv -l | grep 866 CP866 (CP866, CP-866, CP_866, 866), IBM-866, macos % iconv -l | grep 866 CP866 866 CSIBM866 IBM866 MSCP866 musl/src/locale/codepages.h: "cp866\0" ``` On glibc-based systems, codeset will be set to charmap name, on most other systems it seems to be taken from locale name. ## Linux ``` zaytsev@fedora:~$ locale -a | grep ru ru_RU ru_RU.cp866 ru_RU.ibm866 ru_RU.iso88595 ru_RU.koi8r ru_RU.utf8 russian ru_UA ru_UA.koi8u ru_UA.utf8 zaytsev@fedora:~/src$ LC_ALL=ru_RU.cp866 LANG=ru_RU.cp866 ./a.out IBM866 zaytsev@fedora:~/src$ LC_ALL=ru_RU.koi8r LANG=ru_RU.koi8r ./a.out KOI8-R zaytsev@fedora:~/src$ LC_ALL=ru_RU.iso88595 LANG=ru_RU.iso88595 ./a.out ISO-8859-5 ``` ## macOS ``` ru_RU.ISO8859-5 ru_RU.CP866 ru_RU.CP1251 ru_RU.UTF-8 ru_RU.KOI8-R ru_RU zaytsev@Yurys-MBP mc % LANG=ru_RU.CP866 LC_ALL=ru_RU.CP866 ./a.out CP866 zaytsev@Yurys-MBP mc % LANG=ru_RU.ISO8859-5 LC_ALL=ru_RU.ISO8859-5 ./a.out ISO8859-5 ``` ## FreeBSD ``` ru_RU.CP1251 ru_RU.CP866 ru_RU.ISO8859-5 ru_RU.KOI8-R ru_RU.UTF-8 zaytsev@cfarm240:~ $ LANG=ru_RU.ISO8859-5 LC_ALL=ru_RU.ISO8859-5 ./a.out ISO8859-5 zaytsev@cfarm240:~ $ LANG=ru_RU.CP866 LC_ALL=ru_RU.CP866 ./a.out CP866 ``` ## Solaris ``` ru ru.UTF-8 ru.koi8-r ru_RU ru_RU.ANSI1251 ru_RU.ISO8859-5 ru_RU.KOI8-R ru_RU.UTF-8 zaytsev@gcc-solaris10:~/src$ LANG=ru_RU.ISO8859-5 LC_ALL=ru_RU.ISO8859-5 ./a.o> ISO8859-5 zaytsev@gcc-solaris10:~/src$ LANG=ru.koi8-r LC_ALL=ru.koi8-r ./a.out KOI8-R ``` ## AIX ``` zaytsev@gcc111:[/home/zaytsev]locale -a C POSIX en_US.8859-15 en_US.IBM-858 en_US.ISO8859-1 en_US -bash-5.1$ LANG=en_US.ISO8859-1 LC_ALL=en_US.ISO8859-1 ./a.out ISO8859-1 ``` Signed-off-by: Yury V. Zaytsev <yury@shurup.com>
2024-09-13 11:18:11 +03:00
AC_CHECK_HEADERS([gnu/libc-version.h])
dnl Solaris has different name of Windows 1251 encoding
case $host_os in
solaris*)
charset: rename IBM866 to CP866 for iconv and adjust charset names for codeset ``` linux $ iconv -l | grep 866 866// 866NAV// CP866// CP866NAV// CSIBM866// IBM866// IBM866NAV// solaris $ iconv -l | grep 866 CP866 (CP866, CP-866, CP_866, 866), IBM-866, macos % iconv -l | grep 866 CP866 866 CSIBM866 IBM866 MSCP866 musl/src/locale/codepages.h: "cp866\0" ``` On glibc-based systems, codeset will be set to charmap name, on most other systems it seems to be taken from locale name. ## Linux ``` zaytsev@fedora:~$ locale -a | grep ru ru_RU ru_RU.cp866 ru_RU.ibm866 ru_RU.iso88595 ru_RU.koi8r ru_RU.utf8 russian ru_UA ru_UA.koi8u ru_UA.utf8 zaytsev@fedora:~/src$ LC_ALL=ru_RU.cp866 LANG=ru_RU.cp866 ./a.out IBM866 zaytsev@fedora:~/src$ LC_ALL=ru_RU.koi8r LANG=ru_RU.koi8r ./a.out KOI8-R zaytsev@fedora:~/src$ LC_ALL=ru_RU.iso88595 LANG=ru_RU.iso88595 ./a.out ISO-8859-5 ``` ## macOS ``` ru_RU.ISO8859-5 ru_RU.CP866 ru_RU.CP1251 ru_RU.UTF-8 ru_RU.KOI8-R ru_RU zaytsev@Yurys-MBP mc % LANG=ru_RU.CP866 LC_ALL=ru_RU.CP866 ./a.out CP866 zaytsev@Yurys-MBP mc % LANG=ru_RU.ISO8859-5 LC_ALL=ru_RU.ISO8859-5 ./a.out ISO8859-5 ``` ## FreeBSD ``` ru_RU.CP1251 ru_RU.CP866 ru_RU.ISO8859-5 ru_RU.KOI8-R ru_RU.UTF-8 zaytsev@cfarm240:~ $ LANG=ru_RU.ISO8859-5 LC_ALL=ru_RU.ISO8859-5 ./a.out ISO8859-5 zaytsev@cfarm240:~ $ LANG=ru_RU.CP866 LC_ALL=ru_RU.CP866 ./a.out CP866 ``` ## Solaris ``` ru ru.UTF-8 ru.koi8-r ru_RU ru_RU.ANSI1251 ru_RU.ISO8859-5 ru_RU.KOI8-R ru_RU.UTF-8 zaytsev@gcc-solaris10:~/src$ LANG=ru_RU.ISO8859-5 LC_ALL=ru_RU.ISO8859-5 ./a.o> ISO8859-5 zaytsev@gcc-solaris10:~/src$ LANG=ru.koi8-r LC_ALL=ru.koi8-r ./a.out KOI8-R ``` ## AIX ``` zaytsev@gcc111:[/home/zaytsev]locale -a C POSIX en_US.8859-15 en_US.IBM-858 en_US.ISO8859-1 en_US -bash-5.1$ LANG=en_US.ISO8859-1 LC_ALL=en_US.ISO8859-1 ./a.out ISO8859-1 ``` Signed-off-by: Yury V. Zaytsev <yury@shurup.com>
2024-09-13 11:18:11 +03:00
ENCODING_CP1251="ANSI-1251"
;;
*)
charset: rename IBM866 to CP866 for iconv and adjust charset names for codeset ``` linux $ iconv -l | grep 866 866// 866NAV// CP866// CP866NAV// CSIBM866// IBM866// IBM866NAV// solaris $ iconv -l | grep 866 CP866 (CP866, CP-866, CP_866, 866), IBM-866, macos % iconv -l | grep 866 CP866 866 CSIBM866 IBM866 MSCP866 musl/src/locale/codepages.h: "cp866\0" ``` On glibc-based systems, codeset will be set to charmap name, on most other systems it seems to be taken from locale name. ## Linux ``` zaytsev@fedora:~$ locale -a | grep ru ru_RU ru_RU.cp866 ru_RU.ibm866 ru_RU.iso88595 ru_RU.koi8r ru_RU.utf8 russian ru_UA ru_UA.koi8u ru_UA.utf8 zaytsev@fedora:~/src$ LC_ALL=ru_RU.cp866 LANG=ru_RU.cp866 ./a.out IBM866 zaytsev@fedora:~/src$ LC_ALL=ru_RU.koi8r LANG=ru_RU.koi8r ./a.out KOI8-R zaytsev@fedora:~/src$ LC_ALL=ru_RU.iso88595 LANG=ru_RU.iso88595 ./a.out ISO-8859-5 ``` ## macOS ``` ru_RU.ISO8859-5 ru_RU.CP866 ru_RU.CP1251 ru_RU.UTF-8 ru_RU.KOI8-R ru_RU zaytsev@Yurys-MBP mc % LANG=ru_RU.CP866 LC_ALL=ru_RU.CP866 ./a.out CP866 zaytsev@Yurys-MBP mc % LANG=ru_RU.ISO8859-5 LC_ALL=ru_RU.ISO8859-5 ./a.out ISO8859-5 ``` ## FreeBSD ``` ru_RU.CP1251 ru_RU.CP866 ru_RU.ISO8859-5 ru_RU.KOI8-R ru_RU.UTF-8 zaytsev@cfarm240:~ $ LANG=ru_RU.ISO8859-5 LC_ALL=ru_RU.ISO8859-5 ./a.out ISO8859-5 zaytsev@cfarm240:~ $ LANG=ru_RU.CP866 LC_ALL=ru_RU.CP866 ./a.out CP866 ``` ## Solaris ``` ru ru.UTF-8 ru.koi8-r ru_RU ru_RU.ANSI1251 ru_RU.ISO8859-5 ru_RU.KOI8-R ru_RU.UTF-8 zaytsev@gcc-solaris10:~/src$ LANG=ru_RU.ISO8859-5 LC_ALL=ru_RU.ISO8859-5 ./a.o> ISO8859-5 zaytsev@gcc-solaris10:~/src$ LANG=ru.koi8-r LC_ALL=ru.koi8-r ./a.out KOI8-R ``` ## AIX ``` zaytsev@gcc111:[/home/zaytsev]locale -a C POSIX en_US.8859-15 en_US.IBM-858 en_US.ISO8859-1 en_US -bash-5.1$ LANG=en_US.ISO8859-1 LC_ALL=en_US.ISO8859-1 ./a.out ISO8859-1 ``` Signed-off-by: Yury V. Zaytsev <yury@shurup.com>
2024-09-13 11:18:11 +03:00
ENCODING_CP1251="CP1251"
;;
esac
charset: rename IBM866 to CP866 for iconv and adjust charset names for codeset ``` linux $ iconv -l | grep 866 866// 866NAV// CP866// CP866NAV// CSIBM866// IBM866// IBM866NAV// solaris $ iconv -l | grep 866 CP866 (CP866, CP-866, CP_866, 866), IBM-866, macos % iconv -l | grep 866 CP866 866 CSIBM866 IBM866 MSCP866 musl/src/locale/codepages.h: "cp866\0" ``` On glibc-based systems, codeset will be set to charmap name, on most other systems it seems to be taken from locale name. ## Linux ``` zaytsev@fedora:~$ locale -a | grep ru ru_RU ru_RU.cp866 ru_RU.ibm866 ru_RU.iso88595 ru_RU.koi8r ru_RU.utf8 russian ru_UA ru_UA.koi8u ru_UA.utf8 zaytsev@fedora:~/src$ LC_ALL=ru_RU.cp866 LANG=ru_RU.cp866 ./a.out IBM866 zaytsev@fedora:~/src$ LC_ALL=ru_RU.koi8r LANG=ru_RU.koi8r ./a.out KOI8-R zaytsev@fedora:~/src$ LC_ALL=ru_RU.iso88595 LANG=ru_RU.iso88595 ./a.out ISO-8859-5 ``` ## macOS ``` ru_RU.ISO8859-5 ru_RU.CP866 ru_RU.CP1251 ru_RU.UTF-8 ru_RU.KOI8-R ru_RU zaytsev@Yurys-MBP mc % LANG=ru_RU.CP866 LC_ALL=ru_RU.CP866 ./a.out CP866 zaytsev@Yurys-MBP mc % LANG=ru_RU.ISO8859-5 LC_ALL=ru_RU.ISO8859-5 ./a.out ISO8859-5 ``` ## FreeBSD ``` ru_RU.CP1251 ru_RU.CP866 ru_RU.ISO8859-5 ru_RU.KOI8-R ru_RU.UTF-8 zaytsev@cfarm240:~ $ LANG=ru_RU.ISO8859-5 LC_ALL=ru_RU.ISO8859-5 ./a.out ISO8859-5 zaytsev@cfarm240:~ $ LANG=ru_RU.CP866 LC_ALL=ru_RU.CP866 ./a.out CP866 ``` ## Solaris ``` ru ru.UTF-8 ru.koi8-r ru_RU ru_RU.ANSI1251 ru_RU.ISO8859-5 ru_RU.KOI8-R ru_RU.UTF-8 zaytsev@gcc-solaris10:~/src$ LANG=ru_RU.ISO8859-5 LC_ALL=ru_RU.ISO8859-5 ./a.o> ISO8859-5 zaytsev@gcc-solaris10:~/src$ LANG=ru.koi8-r LC_ALL=ru.koi8-r ./a.out KOI8-R ``` ## AIX ``` zaytsev@gcc111:[/home/zaytsev]locale -a C POSIX en_US.8859-15 en_US.IBM-858 en_US.ISO8859-1 en_US -bash-5.1$ LANG=en_US.ISO8859-1 LC_ALL=en_US.ISO8859-1 ./a.out ISO8859-1 ``` Signed-off-by: Yury V. Zaytsev <yury@shurup.com>
2024-09-13 11:18:11 +03:00
if test "x$ac_cv_header_gnu_libc_version_h" != "xno"; then
ENCODING_CP866="IBM866"
ENCODING_ISO8859="ISO-8859"
else
ENCODING_CP866="CP866"
ENCODING_ISO8859="ISO8859"
fi
AC_SUBST(ENCODING_CP1251)
AC_SUBST(ENCODING_CP866)
fi
])