Page 1 of 1

Subtitle language extensions: ISO 639-1 vs ISO 639-2

Posted: 29 Jan 2013, 12:20
by Faber
Hi,

Currently downloaded subtitles are automatically named <basename>.<ISO 639-2 language>.<ext>, i.e. "moviename.eng.srt".

My mediaplayers (Popcorn Hour A-100 and A-110) does not recognize the language in ISO 639-2 format, but require it in ISO 639-1 format, i.e. "moviename.en.srt".

It also looks like ISO 639-1 is the standard elsewhere (I haven't been able to find anything but FileBot that uses ISO 639-2).

Does anyone else require ISO 639-2?

It is a simple fix to output ISO 639-1 instead:

Code: Select all

Index: SubtitleUtilities.java
===================================================================
--- SubtitleUtilities.java	(revision 1432)
+++ SubtitleUtilities.java	(working copy)
@@ -206,7 +206,7 @@
 		StringBuilder sb = new StringBuilder(name);
 		
 		if (languageName != null) {
-			String lang = Language.getISO3LanguageCodeByName(languageName);
+			String lang = Language.getLanguageByName(languageName).getCode();
 			
 			if (lang == null) {
 				// we probably won't get here, but just in case

Cheers,
Faber.

Re: Subtitle language extensions: ISO 639-1 vs ISO 639-2

Posted: 29 Jan 2013, 13:28
by rednoah
The 3-letter standard is better and has less issues (eg hi = hebrew or hearing-impaired) than the 2-letter one. Most HTPC software shouldn't have any issues with that anyway.

You can always fix things via renaming and using {lang.language} or using the "Filename Find & Replace script to fix things.

e.g.

Code: Select all

filebot -script fn:replace --def "e=.eng.srt" "r=.en.srt" /path/to/files