$FETrBaseName="TokenTranslationDictionary";$FETrFileBaseName="ExtendedFEResources";If[ !ListQ@$FETrResources,$FETrResources=FrontEndResource[$FETrBaseName]];$FETrBaseFile=FileNameJoin@{$InstallationDirectory,"SystemFiles","FrontEnd","TextResources","TokenTranslationDictionary.tr"};$FEResourceCompleteListing=StringCases[Import[#,"Text"]&/@FileNames["*.tr",FileNameJoin@{$InstallationDirectory,"SystemFiles"},∞],"@@resource "~~w:WordCharacter..w]//Flatten//DeleteDuplicates//Sort;$FETrListing=AssociationMap[Null&,$FEResourceCompleteListing];$FEResourceDirectory=FrontEnd`FileName@{$TemporaryDirectory,"SystemFiles","FrontEnd","TextResources"};
FELoadResources[]:=(CurrentValue[$FrontEndSession,{PrivatePaths,"TextResources"}]=DeleteDuplicates@Prepend[CurrentValue[$FrontEndSession,{PrivatePaths,"TextResources"}],FrontEnd`FileName[Evaluate@{ToFileName@@$FEResourceDirectory}]];FrontEndExecute@FrontEnd`FlushTextResourceCaches[]);
$FETrTemplate="@|@|@@resource `name``value`@|";FETrExport[name_,value_,inputForm:True|False:True]:=If[value===Inherited,Quiet@DeleteFile@ToFileName@@Append[$FEResourceDirectory,If[StringQ@name,name<>".tr",Last@name<>".tr"]],Quiet@CreateDirectory[ToFileName@@$FEResourceDirectory,CreateIntermediateDirectoriesTrue];Export[ToFileName@@Append[$FEResourceDirectory,If[StringQ@name,name<>".tr",Last@name<>".tr"]],TemplateApply[$FETrTemplate,<|"name"If[StringQ@name,name,First@name],"value"If[inputForm,ToString[value,InputForm],value]|>],"Text"]];FEAddResource[name_String,value_]:=(If[KeyMemberQ[$FETrListing,name],FETrExport[name,value,False],$FETrResources=Normal@DeleteCases[Inherited]@Merge[{$FETrResources,namevalue},Last];Quiet@CopyFile[$FETrBaseFile,ToFileName@@Append[$FEResourceDirectory,FileNameTake@$FETrFileBaseName]];FETrExport[$FETrBaseName$FETrFileBaseName,$FETrResources]];FELoadResources[]);FEAddResource[r:{(_String->_)..}]:=($FETrResources=Normal@DeleteCases[Inherited]@Merge[{$FETrResources,r},Last];Quiet@CopyFile[$FETrBaseFile,ToFileName@@Append[$FEResourceDirectory,$FETrFileBaseName<>".tr"]];FETrExport[$FETrBaseName$FETrFileBaseName,$FETrResources]);