Para un software de MacOS que trabaja con fuentes en el shell bash necesito información sobre las fuentes instaladas. Para obtener la información de las fuentes utilizo
system_profiler SPFontsDataType
Esto funciona bien en un MacOS inglés. Sin embargo, cuando se ejecuta en un MacOS alemán, todo sale en inglés, excepto el estilo de la fuente. Y por compatibilidad también necesito el estilo de fuente en inglés.
Ejemplo de MacOS alemán:
Full Name: Times New Roman Fett
Family: Times New Roman
Style: Fett
Ejemplo de MacOS inglés:
Full Name: Times New Roman Bold
Family: Times New Roman
Style: Bold
Intenté cambiar AppleLanguages en los valores por defecto de system_profiler, pero no funcionó. La salida seguía siendo en alemán:
defaults write com.apple.systemprofiler AppleLanguages '("en-US","de-DE")'
defaults write com.apple.systemprofiler AppleLanguages -array "en-US" "de-DE"
Sin embargo, cuando establecí temporalmente el NSGlobalDomain en inglés, funcionó:
tempvalues=$(defaults read NSGlobalDomain AppleLanguages)
defaults write NSGlobalDomain AppleLanguages -array "en-US"
system_profiler SPFontsDataType
defaults write NSGlobalDomain AppleLanguages "$tempvalues"
¿Pero no hay un enfoque mejor que cambiar el NSGlobalDomain? Llamar a system_profiler lleva unos segundos, por lo que podría afectar a otros programas también.
De las fuentes que necesito: el nombre completo, la familia, el estilo, el nombre y la ubicación del archivo (=ruta completa), la versión, el campo protegido contra copia, el campo incrustado. Toda esta información está disponible en SPFontsDataType.