diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..496ee2c --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +.DS_Store \ No newline at end of file diff --git a/MPOLnch.fr b/MPOLnch.fr index 4929297..07acd8c 100644 --- a/MPOLnch.fr +++ b/MPOLnch.fr @@ -214,6 +214,11 @@ resource MenuDef (kSDKDefMenuResourceID) kMPOLnchAddItemMenuItemPosition, kSDKDefIsNotDynamicMenuFlag, + kMPOLnchFCQueriesActionID, // this is the FC Stuff + kMPOLnchTargetMenuPath, + kMPOLnchFCQueriesMenuItemPosition, + kSDKDefIsNotDynamicMenuFlag, + kMPOLnchRemoveItemActionID, kMPOLnchTargetMenuPath, kMPOLnchRemoveItemMenuItemPosition, @@ -257,6 +262,15 @@ resource ActionDef (kSDKDefActionResourceID) kDisableIfLowMem, kInvalidInterfaceID, kSDKDefInvisibleInKBSCEditorFlag, + + kMPOLnchActionComponentBoss, // FCQueries stuff + kMPOLnchFCQueriesActionID, + kMPOLnchFCQueriesMenuItemKey, + kOtherActionArea, + kNormalAction, + kDisableIfLowMem, + kInvalidInterfaceID, + kSDKDefInvisibleInKBSCEditorFlag, kMPOLnchActionComponentBoss, kMPOLnchRemoveItemActionID, diff --git a/MPOLnchActionComponent.cpp b/MPOLnchActionComponent.cpp index 11b54be..a1a0303 100644 --- a/MPOLnchActionComponent.cpp +++ b/MPOLnchActionComponent.cpp @@ -85,7 +85,19 @@ class MPOLnchActionComponent : public CActionComponent private: /** Encapsulates functionality for the about menu item. */ void DoAbout(); + + + /** Encapsulates functionality for the restore fc queries menu item. */ + + void DoStoreFCQueries(); + + /** This copys the query files to the right preference folder */ + + void CopyQueryFilesToPrefsFolder(PMString fcfilename, PMString fctype); + + void CopyFilesToLauncherFolder(PMString filename , PMString foldername, bool16 subfolder); + /** Encapsulates functionality for the AddItem menu item. @param invokedWidget Widget that initiated the event (the panel menu), useful for getting the panel & other widgets. @@ -139,11 +151,15 @@ void MPOLnchActionComponent::DoAction(IActiveContext *myContext, ActionID action this->DoAddItem(widget); break; } - + case kMPOLnchFCQueriesActionID: + { + this->DoStoreFCQueries(); + break; + } case kMPOLnchRemoveItemActionID: { //this->DoRemoveItem(widget); - CAlert::InformationAlert("This optin doesn't work right now. Sry"); + CAlert::InformationAlert("This option doesn't work right now. Sry"); break; } @@ -223,96 +239,239 @@ void MPOLnchActionComponent::DoAbout() ); } -/* DoAddItem -*/ -void MPOLnchActionComponent::DoAddItem(IPMUnknown *invokedWidget) +/* DoStoreFCQueries + */ +void MPOLnchActionComponent::DoStoreFCQueries() { - // building the scripts - MPOLnchHelper helper; + for (int i = 0; i < helper.FCGREPMAXITEMS ; i++) { - for (int i = 0; i < helper.MAXITEMS ; i++) { - + CopyQueryFilesToPrefsFolder(helper.GetGrepFCFile(i), PMString("GREP")); + + // IDFile theGRPSource = helper.GetInternalResourceFolder(); +// +// FileUtils::AppendPath(&theGRPSource, PMString(helper.GetGrepFCFile(i))); +// PMString grpFileStringUrl = FileUtils::SysFileToFileURL(theGRPSource); +// if(!FileUtils::DoesFileExist(theGRPSource)){ +// CAlert::InformationAlert(" could not find the Source File. I am Here-> " + grpFileStringUrl +// +"\n"+ +// " Please report this bug to: info@the-moron.net"); +// break; +// } +// +// // this gets the GREP folder within the Library/Preferences/Adobe InDesign/ ... +// IDFile theGRPTarget; +// FileUtils::GetAppRoamingDataFolder(&theGRPTarget, "Find-Change Queries"); +// FileUtils::AppendPath(&theGRPTarget,"GREP"); +// FileUtils::CreateFolderIfNeeded(theGRPTarget,kTrue); +// PMString fngrp(helper.GetGrepFCFile(i)); +// FileUtils::AppendPath(&theGRPTarget, fngrp); +// +// if(!FileUtils::DoesFileExist(theGRPTarget)){ +// CAlert::InformationAlert("I will try to copy "+fngrp+ " to your Preferences"); +// if(!FileUtils::CopyFile(theGRPSource, theGRPTarget)){ +// CAlert::InformationAlert("Could not copy "+fngrp+". Sorry"); +// } +// } +// - IDFile theSource = helper.GetInternalResourceFolder();//scriptfiles[i]; - + + } // end of for FCGREPMAXITEMS - IDFile theHelpSource = helper.GetInternalResourceFolder();//scriptfiles[i]; - - - FileUtils::AppendPath(&theSource, PMString(helper.GetScriptFile(i))); - FileUtils::AppendPath(&theHelpSource, PMString(helper.GetHelpFile(i))); - - PMString sourceFileStringUrl = FileUtils::SysFileToFileURL(theSource); - PMString sourceHelpFileStringUrl = FileUtils::SysFileToFileURL(theHelpSource); - - if(!FileUtils::DoesFileExist(theSource)){ - CAlert::InformationAlert(" could not find the Source File. I am Here-> " + sourceFileStringUrl - +"\n"+ - " Please report this bug to: fabiantheblind@the-moron.net"); - break; - } - - if(!FileUtils::DoesFileExist(theHelpSource)){ - CAlert::InformationAlert(" could not find the Help File. I am Here-> " + sourceHelpFileStringUrl - +"\n"+ - " Please report this bug to: fabiantheblind@the-moron.net"); - break; - } - - // this gets the MPO Launcher folder within the scripts panel - IDFile theTarget = helper.GetScriptFilesFolder(); - - //FileUtils::GetAppInstallationFolder(&theTarget); -// FileUtils::AppendPath(&theTarget, PMString("Scripts")); -// FileUtils::AppendPath(&theTarget, PMString("Scripts Panel")); -// FileUtils::AppendPath(&theTarget, PMString("MPO Launcher")); - - //FileUtils::CreateFolderIfNeeded(theTarget,kTrue); + for (int j = 0; j < helper.FCTEXTMAXITEMS ; j++) { + + //IDFile theFCTXTSource = helper.GetInternalResourceFolder(); + CopyQueryFilesToPrefsFolder(helper.GetTextFCFile(j), PMString("Text")); - IDFile theHelpTarget = helper.GetScriptFilesFolder(); - //FileUtils::GetAppInstallationFolder(&theHelpTarget); -// FileUtils::AppendPath(&theHelpTarget, PMString("Scripts")); -// FileUtils::AppendPath(&theHelpTarget, PMString("Scripts Panel")); -// FileUtils::AppendPath(&theHelpTarget, PMString("MPO Launcher")); - - FileUtils::AppendPath(&theHelpTarget, PMString("help")); - - FileUtils::CreateFolderIfNeeded(theHelpTarget,kTrue); + + } // end of for FCTEXTMAXITEMS + + for (int k = 0; k < helper.FCOBJECTMAXITEMS ; k++) { + + //IDFile theFCOBJSource = helper.GetInternalResourceFolder(); + CopyQueryFilesToPrefsFolder(helper.GetObjectFCFile(k), PMString("Object")); + + } // end of for FCGREPMAXITEMS - PMString fn(helper.GetScriptFile(i)); - PMString fnh(helper.GetHelpFile(i)); - - - FileUtils::AppendPath(&theTarget, fn); - - FileUtils::AppendPath(&theHelpTarget, fnh); +} // end of DoStoreFCQueries - - if(!FileUtils::DoesFileExist(theTarget)){ - CAlert::InformationAlert("I will try to copy "+fn+ " to the folder: Scripts Panel/MPO Launcher"); - if(!FileUtils::CopyFile(theSource, theTarget)){ - CAlert::InformationAlert("Could not copy "+fn+". Sorry"); - } - } - - if(!FileUtils::DoesFileExist(theHelpTarget)){ - CAlert::InformationAlert("I will try to copy "+fnh+ " to the folder: Scripts Panel/MPO Launcher/help"); - if(!FileUtils::CopyFile(theHelpSource, theHelpTarget)){ - CAlert::InformationAlert("Could not copy "+fnh+". Sorry"); - } - } - } +/* A Helper For copying files +*/ + +void MPOLnchActionComponent::CopyQueryFilesToPrefsFolder(PMString fcfilename, PMString fctype){ + MPOLnchHelper helper; + + IDFile theGRPSource = helper.GetInternalResourceFolder(); + + FileUtils::AppendPath(&theGRPSource, fcfilename); + PMString grpFileStringUrl = FileUtils::SysFileToFileURL(theGRPSource); + if(!FileUtils::DoesFileExist(theGRPSource)){ + CAlert::InformationAlert(" could not find the Source File. I am Here-> " + grpFileStringUrl + +"\n"+ + " Please report this bug to: info@the-moron.net"); + return; + } + + // this gets the GREP folder within the Library/Preferences/Adobe InDesign/ ... + IDFile theGRPTarget; + FileUtils::GetAppRoamingDataFolder(&theGRPTarget, "Find-Change Queries"); + FileUtils::AppendPath(&theGRPTarget,fctype); + FileUtils::CreateFolderIfNeeded(theGRPTarget,kTrue); + PMString fngrp(fcfilename); + FileUtils::AppendPath(&theGRPTarget, fngrp); + + if(!FileUtils::DoesFileExist(theGRPTarget)){ + CAlert::InformationAlert("I will try to copy "+fngrp+ " to your Preferences"); + if(!FileUtils::CopyFile(theGRPSource, theGRPTarget)){ + CAlert::InformationAlert("Could not copy "+fngrp+". Sorry"); + } + } +} + +/* A Helper For copying files + */ + + +void MPOLnchActionComponent::CopyFilesToLauncherFolder(PMString filename , PMString foldername, bool16 subfolder){ + + MPOLnchHelper helper; + + IDFile source = helper.GetInternalResourceFolder(); + + FileUtils::AppendPath(&source, filename); + PMString fileStringUrl = FileUtils::SysFileToFileURL(source); + if(!FileUtils::DoesFileExist(source)){ + CAlert::InformationAlert(" could not find the Source File. I am Here-> " + fileStringUrl + +"\n"+ + " Please report this bug to: info@the-moron.net"); + return; + } + + IDFile target = helper.GetScriptFilesFolder(); + if (subfolder) { - for(int j = 0; j < helper.METAMAXITEMS; j++){ + FileUtils::AppendPath(&target, foldername); + FileUtils::CreateFolderIfNeeded(target,kTrue); + + } + + PMString fn(filename); + + FileUtils::AppendPath(&target, fn); + + if(!FileUtils::DoesFileExist(target)){ + if (subfolder) { + CAlert::InformationAlert("I will try to copy "+fn + + " to the folder: Scripts Panel/MPO Launcher/" + +foldername); + }else{ + CAlert::InformationAlert("I will try to copy "+fn + + " to the folder: Scripts Panel/MPO Launcher"); + } + if(!FileUtils::CopyFile(source, target)){ + CAlert::InformationAlert("Could not copy "+fn + +". Sorry"); + } + } + + // this gets the GREP folder within the Library/Preferences/Adobe InDesign/ ... +// IDFile target; +// FileUtils::GetAppRoamingDataFolder(&target, "Find-Change Queries"); +// FileUtils::AppendPath(&target,fctype); +// FileUtils::CreateFolderIfNeeded(target,kTrue); +// PMString fngrp(fcfilename); +// FileUtils::AppendPath(&theGRPTarget, fn); +// +// if(!FileUtils::DoesFileExist(target)){ +// CAlert::InformationAlert("I will try to copy "+fn+ " to your Preferences"); +// if(!FileUtils::CopyFile(source, target)){ +// CAlert::InformationAlert("Could not copy "+fn+". Sorry"); +// } +// } +} + +/* DoAddItem +*/ +void MPOLnchActionComponent::DoAddItem(IPMUnknown *invokedWidget) +{ + // building the scripts + + MPOLnchHelper helper; - IDFile theMetaSource = helper.GetInternalResourceFolder();//scriptfiles[i]; + for (int i = 0; i < helper.MAXITEMS ; i++) { + + + // // the script files +// // +// // +// IDFile theSource = helper.GetInternalResourceFolder();//scriptfiles[i]; +// FileUtils::AppendPath(&theSource, PMString(helper.GetScriptFile(i))); +// PMString sourceFileStringUrl = FileUtils::SysFileToFileURL(theSource); +// if(!FileUtils::DoesFileExist(theSource)){ +// CAlert::InformationAlert(" could not find the Source File. I am Here-> " + sourceFileStringUrl +// +"\n"+ +// " Please report this bug to: fabiantheblind@the-moron.net"); +// break; +// } +// IDFile theTarget = helper.GetScriptFilesFolder(); +// PMString fn(helper.GetScriptFile(i)); +// +// FileUtils::AppendPath(&theTarget, fn); +// +// if(!FileUtils::DoesFileExist(theTarget)){ +// CAlert::InformationAlert("I will try to copy "+fn+ " to the folder: Scripts Panel/MPO Launcher"); +// if(!FileUtils::CopyFile(theSource, theTarget)){ +// CAlert::InformationAlert("Could not copy "+fn+". Sorry"); +// } +// } + + CopyFilesToLauncherFolder(helper.GetScriptFile(i) , "NOFOLDER",false); + CopyFilesToLauncherFolder(helper.GetHelpFile(i) , "help",true); + + // the help files + // + // + //IDFile theHelpSource = helper.GetInternalResourceFolder();//scriptfiles[i]; +// +// +// FileUtils::AppendPath(&theHelpSource, PMString(helper.GetHelpFile(i))); +// +// PMString sourceHelpFileStringUrl = FileUtils::SysFileToFileURL(theHelpSource); +// +// if(!FileUtils::DoesFileExist(theHelpSource)){ +// CAlert::InformationAlert(" could not find the Help File. I am Here-> " + sourceHelpFileStringUrl +// +"\n"+ +// " Please report this bug to: fabiantheblind@the-moron.net"); +// break; +// } +// +// +// IDFile theHelpTarget = helper.GetScriptFilesFolder(); +// FileUtils::AppendPath(&theHelpTarget, PMString("help")); +// FileUtils::CreateFolderIfNeeded(theHelpTarget,kTrue); +// PMString fnh(helper.GetHelpFile(i)); +// FileUtils::AppendPath(&theHelpTarget, fnh); +// +// +// if(!FileUtils::DoesFileExist(theHelpTarget)){ +// CAlert::InformationAlert("I will try to copy "+fnh+ " to the folder: Scripts Panel/MPO Launcher/help"); +// if(!FileUtils::CopyFile(theHelpSource, theHelpTarget)){ +// CAlert::InformationAlert("Could not copy "+fnh+". Sorry"); +// } +// } + }// end for MAXITEMS + + //THE META FILES + // + for(int j = 0; j < helper.METAMAXITEMS; j++){ + + IDFile theMetaSource = helper.GetInternalResourceFolder();//scriptfiles[i]; FileUtils::AppendPath(&theMetaSource, PMString(helper.GetMetaFile(j))); PMString metaSourceFileStringUrl = FileUtils::SysFileToFileURL(theMetaSource); @@ -323,24 +482,12 @@ void MPOLnchActionComponent::DoAddItem(IPMUnknown *invokedWidget) " Please report this bug to: info@the-moron.net"); break; } - - - // this gets the MPO Launcher folder within the scripts panel IDFile theMetaTarget = helper.GetScriptFilesFolder(); - - FileUtils::AppendPath(&theMetaTarget, PMString("meta")); - FileUtils::CreateFolderIfNeeded(theMetaTarget,kTrue); - PMString fnm(helper.GetMetaFile(j)); - - FileUtils::AppendPath(&theMetaTarget, fnm); - - - if(!FileUtils::DoesFileExist(theMetaTarget)){ CAlert::InformationAlert("I will try to copy "+fnm+ " to the folder: Scripts Panel/MPO Launcher/meta"); if(!FileUtils::CopyFile(theMetaSource, theMetaTarget)){ @@ -353,6 +500,7 @@ void MPOLnchActionComponent::DoAddItem(IPMUnknown *invokedWidget) } + /* DoRemoveItem */ void MPOLnchActionComponent::DoRemoveItem(IPMUnknown *invokedWidget) @@ -392,6 +540,7 @@ void MPOLnchActionComponent::DoRemoveItem(IPMUnknown *invokedWidget) } + // End, MPOLnchActionComponent.cpp. diff --git a/MPOLnchHelper.cpp b/MPOLnchHelper.cpp index 4d7667d..d56a029 100644 --- a/MPOLnchHelper.cpp +++ b/MPOLnchHelper.cpp @@ -20,6 +20,11 @@ int MPOLnchHelper::MAXITEMS = 12; int MPOLnchHelper::METAMAXITEMS = 1; +int MPOLnchHelper::FCGREPMAXITEMS = 19; +int MPOLnchHelper::FCOBJECTMAXITEMS = 1; + +int MPOLnchHelper::FCTEXTMAXITEMS = 1; + PMString MPOLnchHelper::GetScriptFile(int i){ PMString theFileName[12] = { @@ -67,6 +72,66 @@ PMString MPOLnchHelper::GetHelpFile(int i){ return theFileName[i]; } +// the find change queries need to be installed in the resources + +PMString MPOLnchHelper::GetObjectFCFile(int i){ + + PMString theFileName[1] = { + "change_100K_To_MixedK.xml"}; + + + + if (i > 1) { + i = 1; + } + return theFileName[i]; +} + +PMString MPOLnchHelper::GetGrepFCFile(int i){ + + PMString theFileName[19] = { + + "__JMRaute 2 Raute whitespace.xml", + "JM__ANAB_01.xml", + "JM__ANAB_02.xml", + "JM__APOSTROPH.xml", + "JM__BISSTRICH.xml", + "JM__EURO_hin.xml", + "JM__EURO_zurueck.xml", + "JM__INTERPUNKTION.xml", + "JM__KOMMABLANK.xml", + "JM__LEERZEICHEN_DOPPELTE.xml", + "JM__MALZEICHEN.xml", + "JM__PREISSTRICH.xml", + "JM__PUNKTBLANK.xml", + "JM__ZOLL_HIN.xml", + "JM__ZOLL_ZURUECK.xml", + "JM__ZOLLZEICHEN.xml", + "JM_MIDI.xml", + "JM_Plug-in.xml", + "mySpecsFinder.xml"}; + + + + if (i > 19) { + i = 19; + } + return theFileName[i]; +} + +PMString MPOLnchHelper::GetTextFCFile(int i){ + + PMString theFileName[1] = { + "changeFooter_v01.xml"}; + + + + if (i > 1) { + i = 1; + } + return theFileName[i]; +} + PMString MPOLnchHelper::GetMetaFile(int i){ PMString theFileName[1] = { diff --git a/MPOLnchHelper.h b/MPOLnchHelper.h index 461c15f..c3b9251 100644 --- a/MPOLnchHelper.h +++ b/MPOLnchHelper.h @@ -26,6 +26,10 @@ class MPOLnchHelper PMString GetScriptFile(int i); PMString GetHelpFile(int i); PMString GetMetaFile(int i); + PMString GetFCFile(int i); + PMString GetTextFCFile(int i); + PMString GetGrepFCFile(int i); + PMString GetObjectFCFile(int i); IDFile GetInternalResourceFolder(); @@ -34,6 +38,10 @@ class MPOLnchHelper static int MAXITEMS; static int METAMAXITEMS; + static int FCGREPMAXITEMS; + static int FCOBJECTMAXITEMS; + + static int FCTEXTMAXITEMS; }; diff --git a/MPOLnchID.h b/MPOLnchID.h index 29ae7e2..6ab3efb 100644 --- a/MPOLnchID.h +++ b/MPOLnchID.h @@ -74,6 +74,8 @@ DECLARE_PMID(kActionIDSpace, kMPOLnchSeparator1ActionID, kMPOLnchPrefix + 2) DECLARE_PMID(kActionIDSpace, kMPOLnchPopupAboutThisActionID, kMPOLnchPrefix + 3) DECLARE_PMID(kActionIDSpace, kMPOLnchAddItemActionID, kMPOLnchPrefix + 11) DECLARE_PMID(kActionIDSpace, kMPOLnchRemoveItemActionID, kMPOLnchPrefix + 12) +DECLARE_PMID(kActionIDSpace, kMPOLnchFCQueriesActionID, kMPOLnchPrefix + 13) + // WidgetIDs: DECLARE_PMID(kWidgetIDSpace, kMPOLnchPanelWidgetID, kMPOLnchPrefix + 0) DECLARE_PMID(kWidgetIDSpace, kMPOLnchTextWidgetID, kMPOLnchPrefix + 1) @@ -92,6 +94,7 @@ DECLARE_PMID(kWidgetIDSpace, kMPOLnchListElementPenWidgetID, kMPOLnchPrefix + 5) // Menu item keys: #define kMPOLnchAddItemMenuItemKey kMPOLnchStringPrefix "kMPOLnchAddItemMenuItemKey" #define kMPOLnchRemoveItemMenuItemKey kMPOLnchStringPrefix "kMPOLnchRemoveItemMenuItemKey" +#define kMPOLnchFCQueriesMenuItemKey kMPOLnchStringPrefix "kMPOLnchFCQueriesMenuItemStringKey" // Other StringKeys: #define kMPOLnchAboutBoxStringKey kMPOLnchStringPrefix "kMPOLnchAboutBoxStringKey" @@ -108,7 +111,10 @@ DECLARE_PMID(kWidgetIDSpace, kMPOLnchListElementPenWidgetID, kMPOLnchPrefix + 5) // Menu item positions: #define kMPOLnchAddItemMenuItemPosition 1.0 -#define kMPOLnchRemoveItemMenuItemPosition 2.0 +#define kMPOLnchFCQueriesMenuItemPosition 2.0 + +#define kMPOLnchRemoveItemMenuItemPosition 3.0 + #define kMPOLnchSeparator1MenuItemPosition 10.0 #define kMPOLnchAboutThisMenuItemPosition 11.0 diff --git a/MPOLnch_deDE.fr b/MPOLnch_deDE.fr index 42bdf29..4873875 100644 --- a/MPOLnch_deDE.fr +++ b/MPOLnch_deDE.fr @@ -41,6 +41,8 @@ resource StringTable (kSDKDefStringsResourceID + index_deDE) kMPOLnchAboutMenuKey, kMPOLnchPluginName "[DE]...", kMPOLnchPluginsMenuKey, kMPOLnchPluginName "[DE]", kMPOLnchAddItemMenuItemKey, "Skriptdateien wiederherstellen [DE]", + kMPOLnchFCQueriesMenuItemKey, "Find Change-Queries wiederherstellen [DE]", + kMPOLnchRemoveItemMenuItemKey, "Object lรถschen [DE]", kSDKDefAboutThisPlugInMenuKey, kSDKDefAboutThisPlugInMenuValue_deDE, diff --git a/MPOLnch_enUS.fr b/MPOLnch_enUS.fr index 166867a..a0b8d75 100644 --- a/MPOLnch_enUS.fr +++ b/MPOLnch_enUS.fr @@ -41,6 +41,8 @@ resource StringTable (kSDKDefStringsResourceID + index_enUS) kMPOLnchAboutMenuKey, kMPOLnchPluginName "[US]...", kMPOLnchPluginsMenuKey, kMPOLnchPluginName "[US]", kMPOLnchAddItemMenuItemKey, "Build Scripts [US]", + kMPOLnchFCQueriesMenuItemKey, "Build Find Change-Queries [DE]", + kMPOLnchRemoveItemMenuItemKey, "Remove item[US]", kSDKDefAboutThisPlugInMenuKey, kSDKDefAboutThisPlugInMenuValue_enUS, diff --git a/MPOLnch_jaJP.fr b/MPOLnch_jaJP.fr index bec9d83..44cd286 100644 --- a/MPOLnch_jaJP.fr +++ b/MPOLnch_jaJP.fr @@ -41,6 +41,8 @@ resource StringTable (kSDKDefStringsResourceID + index_jaJP) kMPOLnchAboutMenuKey, kMPOLnchPluginName "[JP]...", kMPOLnchPluginsMenuKey, kMPOLnchPluginName "[JP]", kMPOLnchAddItemMenuItemKey, "€–ฺ‚๐’ว‰ม[JP]", + kMPOLnchFCQueriesMenuItemKey, "€–ฺ‚๐’ว‰ม[JP]", + kMPOLnchRemoveItemMenuItemKey, "€–ฺ‚๐ํœ[JP]", kSDKDefAboutThisPlugInMenuKey, kSDKDefAboutThisPlugInMenuValue_jaJP,