@@ -502,7 +502,7 @@ export default class LanguageProvider {
502502 addLanguage ( lang , options = { } ) {
503503 if ( ! lang ) return ;
504504
505- const key = lang . toLowerCase ( ) . replace ( / [ \s ' ] / g , "_" ) ;
505+ const key = lang . slugify ( { replacement : "_" } ) ;
506506 const languagesSetting = game . settings . get ( "polyglot" , "Languages" ) ;
507507 const defaultOptions = {
508508 font : languagesSetting [ key ] ?. font ?? this . defaultFont ,
@@ -524,7 +524,7 @@ export default class LanguageProvider {
524524 if ( ! lang ) return ;
525525 const customLanguages = game . settings . get ( "polyglot" , "customLanguages" ) ;
526526 if ( customLanguages . includes ( lang ) ) return ;
527- const key = lang . trim ( ) . toLowerCase ( ) . replace ( / [ \s ' ] / g , "_" ) ;
527+ const key = lang . slugify ( { replacement : "_" } ) ;
528528 delete this . languages [ key ] ;
529529 this . removeFromConfig ( key ) ;
530530 }
@@ -645,12 +645,19 @@ export default class LanguageProvider {
645645 }
646646 } else if ( game . settings . settings . has ( "polyglot.LanguageRegex" ) ) {
647647 const languageRegex = game . settings . get ( "polyglot" , "LanguageRegex" ) ;
648- let myRegex = new RegExp ( `${ languageRegex } \\s*\\((.+)\\)` , "i" ) ;
648+ let literacyRegex ;
649+ if ( game . settings . settings . has ( "polyglot.LiteracyRegex" ) ) {
650+ literacyRegex = game . settings . get ( "polyglot" , "LiteracyRegex" ) ;
651+ }
652+ const langRegex = new RegExp ( `${ languageRegex } \\s*\\((.+)\\)` , "i" ) ;
653+ const litRegex = new RegExp ( `${ literacyRegex } \\((.+)\\)` , "i" ) ;
649654 for ( let item of actor . items ) {
650655 const name = item ?. flags ?. babele ?. originalName || item . name ;
651656 // adding only the descriptive language name, not "Language (XYZ)"
652- if ( myRegex . test ( name ) ) {
653- knownLanguages . add ( name . match ( myRegex ) [ 1 ] . trim ( ) . toLowerCase ( ) ) ;
657+ if ( langRegex . test ( name ) ) {
658+ knownLanguages . add ( name . match ( langRegex ) [ 1 ] . slugify ( { replacement : "_" } ) ) ;
659+ } else if ( literacyRegex && litRegex . test ( name ) ) {
660+ literateLanguages . add ( name . match ( litRegex ) [ 1 ] . slugify ( { replacement : "_" } ) ) ;
654661 }
655662 }
656663 }
0 commit comments