package Ġcom . as ledge hammer . lang pack . core Ċ Ċ import Ġjava . util .* Ċ Ċ /** Ċ Ġ* Ġ** Language ** Ġpackages Ġ[ Locale ] Ġas Ġconvenient Ġways Ġto Ġidentify Ġand Ġhandle Ġlanguage - specific Ġtasks Ġfor Ġ[ Lang Pack ]. Ċ Ġ* Ċ Ġ* Ċ Ġ* Ġ( Primary Ġidentifier Ġis Ġbased Ġon ĠLocale Ġobjects Ġrather Ġthan ĠStrings ) Ċ Ġ* Ċ Ġ* Ġ@ author ĠJ ab Ċ Ġ* Ċ Ġ* Ġ@ property Ġlocale ĠThe Ġlocale Ġto Ġpackage . Ċ Ġ* Ġ@ property Ġfallback ĠThe Ġfallback ĠLanguage Ġhelps Ġwith Ġgeneral izing Ġspecific ĠLoc ales Ġsharing Ġthe Ġsame Ġlanguage . Ċ Ġ*/ Ċ class ĠLanguage ( val Ġlocale : ĠLocale , Ġval Ġfallback : ĠLanguage ? Ġ= Ġnull ) Ġ{ ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠThe Ġstring - form Ġof Ġthe Ġlocale . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġval Ġraw Locale Ġ= Ġif Ġ( locale . country . isNotEmpty ()) Ġ"${ locale . language }_${ locale . country }" Ġelse Ġlocale . language !! ĊĊĠĠĠ Ġoverride Ġfun ĠtoString (): ĠString Ġ= Ġ" Language ($ raw Locale )" Ċ } Ċ