I suppose the cause can vary. However, it seems multilingual sites may have additional factors that contribute to make this counter-related stuffs go wrong. Here are a couple of example cases for multilingual sites.
I assume you are using the path-prefix based language negotiation as the high(est) priority.
In your case (A), is the English the default language and no path-prefix is defined for English? In your case (B), are the path-prefixes defined for all the enabled languages, including the default language? In those cases, it is suspicious some module(s) that use i18n are causing a trouble.
First, check the database table node_counter
. If a node has a non-zero totalcount
, and if you don't see the page-view counter when you view the node, then it is likely to be down to either the permission or your theme, which may not show the counter in the first place.
If the totalcount
column has zero count, despite you (preferably as a non-authenticated user) have viewed the node (and have flushed all caches), then the statistics
module is not working, either due to its own failure or other module(s) fail to access the statistics
module.
Have a look at "Recent log messages" /admin/reports/dblog
. If you see (probably plenty of) "page not found" for modules/statistics/statistics.php
, then the latter is the case, or at least is contributing.
In that case,
- Confirm
modules/statistics/statistics.php
does exist, and the file permission is set to be readable to any one, as well as all the parent directory permissions are set to be readable and executable to any one.
- In the table of "Recent log messages"
/admin/reports/dblog
, click the links (for TYPE: page not found) modules/statistics/statistics.php
in the Message column. What do you see? Does the LOCATION include the language prefix (like /fr/
)?
- If that is the case, your module(s) try to access the non-existing page like
fr/modules/statistics/statistics.php
instead of the correct path without the language prefix. Best figure out which module is causing the trouble and fix the module. If that is not practical, alternatively you can control the path at the server level: read the answer to Why so many “page not found” for statistics.php?.