package Ġca . log ar itm . de zel . modules . i 1 8 n Ċ Ċ import Ġandroid . content . Context Ċ import Ġca . log ar itm . de zel . extension . getFile Ċ import Ġjava . io . InputStream Ċ import Ġjava . util .* Ċ Ċ /** Ċ Ġ* ĠTranslation Ġfile Ġlocator Ġand Ġloader . Ċ Ġ* Ġ@ class ĠTranslation File Ċ Ġ* Ġ@ since Ġ 0 . 5 . 0 Ċ Ġ*/ Ċ open Ġclass ĠTranslation File ( context : ĠContext , Ġname : ĠString ? Ġ= Ġnull ) Ġ{ ĊĊ ĉ //-------------------------------------------------------------------------- Ċ ĉ // Ġ ĠProperties Ċ ĉ //-------------------------------------------------------------------------- ĊĊ ĉ /** Ċĉ Ġ* ĠWhether Ġthe Ġtranslation Ġfile Ġhas Ġbeen Ġloaded . Ċĉ Ġ* Ġ@ property Ġloaded Ċĉ Ġ* Ġ@ since Ġ 0 . 5 . 0 Ċĉ Ġ*/ Ċ ĉ public Ġvar Ġloaded : ĠBoolean Ġ= Ġfalse Ċĉ ĉ private Ġset ĊĊ ĉ /** Ċĉ Ġ* Ġ@ property Ġcontext Ċĉ Ġ* Ġ@ since Ġ 0 . 5 . 0 Ċĉ Ġ* Ġ@ hidden Ċĉ Ġ*/ Ċ ĉ private Ġvar Ġcontext : ĠContext Ġ= Ġcontext ĊĊ ĉ //-------------------------------------------------------------------------- Ċ ĉ // Ġ ĠMethods Ċ ĉ //-------------------------------------------------------------------------- ĊĊ ĉ /** Ċĉ Ġ* Ġ@ constructor Ċĉ Ġ* Ġ@ since Ġ 0 . 5 . 0 Ċĉ Ġ*/ Ċ ĉ init Ġ{ Ċĉ ĉ this . load ( name ) Ċ ĉ } ĊĊ ĉ //-------------------------------------------------------------------------- Ċ ĉ // Ġ ĠPrivate ĠAPI Ċ ĉ //-------------------------------------------------------------------------- ĊĊ ĉ /** Ċĉ Ġ* Ġ@ method Ġload Ċĉ Ġ* Ġ@ since Ġ 0 . 5 . 0 Ċĉ Ġ* Ġ@ hidden Ċĉ Ġ*/ Ċ ĉ private Ġfun Ġload ( name : ĠString ?) Ġ{ ĊĊĉ ĉ if Ġ( name Ġ== Ġnull ) Ġ{ ĊĊĉĉ ĉ val Ġlan Ġ= ĠLocale . getDefault (). language Ċĉĉ ĉ val Ġc ou Ġ= ĠLocale . getDefault (). country ĊĊĉĉ ĉ if Ġ( lan Ġ== Ġ"" Ġ|| Ċĉĉĉ ĉ co u Ġ== Ġ"") Ġ{ Ċĉĉĉ ĉ return Ċĉĉ ĉ } ĊĊĉĉ ĉ this . getFile ("${ lan }_${ co u }. mo ") ?. let Ġ{ Ċĉĉĉ ĉ this . load ( it ) Ċĉĉĉ ĉ return Ċĉĉ ĉ } ĊĊĉĉ ĉ this . getFile ( Regex ("^ ${ lan } _[ a - zA - Z ]+ \\. mo $ ")) ?. let Ġ{ Ċĉĉĉ ĉ this . load ( it ) Ċĉĉĉ ĉ return Ċĉĉ ĉ } ĊĊĉĉ ĉ return Ċĉ ĉ } ĊĊĉ ĉ this . getFile ( name )?. let Ġ{ Ċĉĉ ĉ this . load ( it ) Ċĉ ĉ } Ċ ĉ } ĊĊ ĉ /** Ċĉ Ġ* Ġ@ method Ġload Ċĉ Ġ* Ġ@ since Ġ 0 . 5 . 0 Ċĉ Ġ* Ġ@ hidden Ċĉ Ġ*/ Ċ ĉ private Ġfun Ġload ( file : ĠInputStream ) Ġ{ Ċĉ ĉ Translation Manager External . load ( file . read Bytes ()) Ċĉ ĉ this . loaded Ġ= Ġtrue Ċ ĉ } ĊĊ ĉ /** Ċĉ Ġ* Ġ@ method ĠgetFile Ċĉ Ġ* Ġ@ since Ġ 0 . 5 . 0 Ċĉ Ġ* Ġ@ hidden Ċĉ Ġ*/ Ċ ĉ private Ġfun ĠgetFile ( named : ĠString ): ĠInputStream ? Ġ{ Ċĉ ĉ return Ġthis . context . assets . getFile (" languages ", Ġnamed ) Ċ ĉ } ĊĊ ĉ /** Ċĉ Ġ* Ġ@ method ĠgetFile Ċĉ Ġ* Ġ@ since Ġ 0 . 5 . 0 Ċĉ Ġ* Ġ@ hidden Ċĉ Ġ*/ Ċ ĉ private Ġfun ĠgetFile ( match : ĠRegex ): ĠInputStream ? Ġ{ Ċĉ ĉ return Ġthis . context . assets . getFile (" languages ", Ġmatch ) Ċ ĉ } Ċ }