In AEM 6.2/6.3/6.4 we started seeing the i18n translations changes are not reflected until we restart "org.apache.sling.i18n" bundle.
By adding below config file the translation changes will reflect without restarting the i18n bundle
File name: org.apache.sling.i18n.impl.JcrResourceBundleProvider.xml
<?xml version="1.0" encoding="UTF-8"?>
<jcr:root xmlns:sling="http://sling.apache.org/jcr/sling/1.0" xmlns:jcr="http://www.jcp.org/jcr/1.0"
I would recommend setting up a DEBUG logger on "org.apache.sling.i18n" and check whats getting logged when you add a new entry to the dictionary.
Also, check if all indexes are valid from jmx console.
There was a known issue in 6.2 and 6.3 and the issue was resolved in org.apache.sling.i18n version 2.5.10.
Check the resolution in this article:
If you have the 2.5.10 bundle already and still facing issue, put a trace level logging on org.apache.sling.i18n.impl.JcrResourceBundleProvider as Jaideep mentioned.
Also, set debug log on org.apache.jackrabbit.oak.jcr.observation and org.apache.sling.jcr.resource.internal.OakResourceListener to validate that observation in general works fine and picks up the dictionary changes.
Thanks all for the suggestion. This is not a question and I mentioned solution which I did to fix the issue in AEM