Use g.gettext for translations

This commit is contained in:
Grégory Soutadé 2014-12-17 19:00:42 +01:00
parent b4fc831f06
commit c278ff30f0
10 changed files with 87 additions and 56 deletions

2
TODO
View File

@ -6,4 +6,4 @@ Limit hits/pages/downloads by rate
Automatic tests Automatic tests
Add Licence Add Licence
Free memory as soon as possible Free memory as soon as possible
different debug output levels filter log with domain name

View File

@ -26,3 +26,7 @@ max_hits_displayed = 100
max_downloads_displayed = 100 max_downloads_displayed = 100
compress_output_files = ['html', 'css', 'js'] compress_output_files = ['html', 'css', 'js']
# locale = 'fr'
locale = 'fr_FR'
# locale = 'fr_FR.utf8'

View File

@ -51,3 +51,9 @@ css_path = ['%s/%s/%s' % (os.path.basename(resources_path[0]), 'css', 'iwla.css'
# Extensions to compress in gzip during display build # Extensions to compress in gzip during display build
compress_output_files = [] compress_output_files = []
# Path to locales files
locales_path = './locales'
# Default locale (english)
locale = 'en_EN'

37
iwla.py
View File

@ -10,6 +10,7 @@ import gzip
import importlib import importlib
import argparse import argparse
import logging import logging
import gettext as g
from calendar import monthrange from calendar import monthrange
from datetime import date from datetime import date
@ -32,6 +33,7 @@ from display import *
# Conf values needed : # Conf values needed :
# analyzed_filename # analyzed_filename
# domain_name # domain_name
# locales_path
# compress_output_files* # compress_output_files*
# #
# Output files : # Output files :
@ -130,6 +132,19 @@ class IWLA(object):
self.logger = logging.getLogger(self.__class__.__name__) self.logger = logging.getLogger(self.__class__.__name__)
self.logger.info('==> Start') self.logger.info('==> Start')
# print conf.locales_path
# print conf.locale
#print g.find('iwla', localedir=conf.locales_path, all=False)
# print g.find('iwla', localedir=conf.locales_path, languages=[conf.locale], all=True)
#g.install('iwla', localedir=conf.locales_path)
t = g.translation('iwla', localedir=conf.locales_path, languages=[conf.locale])
self._ = t.gettext
#t.install()
# g.install('iwla', localedir=conf.locales_path, names=conf.locale)
print(self._('Statistics'))
# print(_('Statistics'))
def getVersion(self): def getVersion(self):
return IWLA.IWLA_VERSION return IWLA.IWLA_VERSION
@ -338,13 +353,13 @@ class IWLA(object):
def _generateDisplayDaysStats(self): def _generateDisplayDaysStats(self):
cur_time = self.meta_infos['last_time'] cur_time = self.meta_infos['last_time']
title = 'Stats %d/%02d' % (cur_time.tm_year, cur_time.tm_mon) title = '%s %d/%02d' % (g.gettext('Statistics'), cur_time.tm_year, cur_time.tm_mon)
filename = self.getCurDisplayPath('index.html') filename = self.getCurDisplayPath('index.html')
self.logger.info('==> Generate display (%s)' % (filename)) self.logger.info('==> Generate display (%s)' % (filename))
page = self.display.createPage(title, filename, conf.css_path) page = self.display.createPage(title, filename, conf.css_path)
_, nb_month_days = monthrange(cur_time.tm_year, cur_time.tm_mon) _, nb_month_days = monthrange(cur_time.tm_year, cur_time.tm_mon)
days = self.display.createBlock(DisplayHTMLBlockTableWithGraph, 'By day', ['Day', 'Visits', 'Pages', 'Hits', 'Bandwidth', 'Not viewed Bandwidth'], None, nb_month_days, range(1,6)) days = self.display.createBlock(DisplayHTMLBlockTableWithGraph, g.gettext('By day'), [g.gettext('Day'), g.gettext('Visits'), g.gettext('Pages'), g.gettext('Hits'), g.gettext('Bandwidth'), g.gettext('Not viewed Bandwidth')], None, nb_month_days, range(1,6))
days.setColsCSSClass(['', 'iwla_visit', 'iwla_page', 'iwla_hit', 'iwla_bandwidth', 'iwla_bandwidth']) days.setColsCSSClass(['', 'iwla_visit', 'iwla_page', 'iwla_hit', 'iwla_bandwidth', 'iwla_bandwidth'])
nb_visits = 0 nb_visits = 0
nb_days = 0 nb_days = 0
@ -381,12 +396,12 @@ class IWLA(object):
else: else:
average_row = map(lambda(v): 0, row) average_row = map(lambda(v): 0, row)
average_row[0] = 'Average' average_row[0] = g.gettext('Average')
average_row[4] = bytesToStr(average_row[4]) average_row[4] = bytesToStr(average_row[4])
average_row[5] = bytesToStr(average_row[5]) average_row[5] = bytesToStr(average_row[5])
days.appendRow(average_row) days.appendRow(average_row)
row[0] = 'Total' row[0] = g.gettext('Total')
row[4] = bytesToStr(row[4]) row[4] = bytesToStr(row[4])
row[5] = bytesToStr(row[5]) row[5] = bytesToStr(row[5])
days.appendRow(row) days.appendRow(row)
@ -395,9 +410,9 @@ class IWLA(object):
def _generateDisplayMonthStats(self, page, year, month_stats): def _generateDisplayMonthStats(self, page, year, month_stats):
cur_time = time.localtime() cur_time = time.localtime()
months_name = ['', 'Jan', 'Feb', 'Mar', 'Apr', 'May', 'June', 'July', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'] months_name = ['', g.gettext('Jan'), g.gettext('Feb'), g.gettext('Mar'), g.gettext('Apr'), g.gettext('May'), g.gettext('June'), g.gettext('July'), g.gettext('Aug'), g.gettext('Sep'), g.gettext('Oct'), g.gettext('Nov'), g.gettext('Dec')]
title = 'Summary %d' % (year) title = '%s %d' % (g.gettext('Summary'), year)
cols = ['Month', 'Visitors', 'Visits', 'Pages', 'Hits', 'Bandwidth', 'Not viewed Bandwidth', 'Details'] cols = [g.gettext('Month'), g.gettext('Visitors'), g.gettext('Visits'), g.gettext('Pages'), g.gettext('Hits'), g.gettext('Bandwidth'), g.gettext('Not viewed Bandwidth'), g.gettext('Details')]
graph_cols=range(1,7) graph_cols=range(1,7)
months = self.display.createBlock(DisplayHTMLBlockTableWithGraph, title, cols, None, 12, graph_cols) months = self.display.createBlock(DisplayHTMLBlockTableWithGraph, title, cols, None, 12, graph_cols)
months.setColsCSSClass(['', 'iwla_visitor', 'iwla_visit', 'iwla_page', 'iwla_hit', 'iwla_bandwidth', 'iwla_bandwidth', '']) months.setColsCSSClass(['', 'iwla_visitor', 'iwla_visit', 'iwla_page', 'iwla_hit', 'iwla_bandwidth', 'iwla_bandwidth', ''])
@ -407,7 +422,7 @@ class IWLA(object):
full_month = '%s %d' % (months_name[i], year) full_month = '%s %d' % (months_name[i], year)
if i in month_stats.keys(): if i in month_stats.keys():
stats = month_stats[i] stats = month_stats[i]
link = '<a href="%d/%02d/index.html">Details</a>' % (year, i) link = '<a href="%d/%02d/index.html">%s</a>' % (year, i, g.gettext('Details'))
row = [full_month, stats['nb_visitors'], stats['nb_visits'], stats['viewed_pages'], stats['viewed_hits'], row = [full_month, stats['nb_visitors'], stats['nb_visits'], stats['viewed_pages'], stats['viewed_hits'],
stats['viewed_bandwidth'], stats['not_viewed_bandwidth'], link] stats['viewed_bandwidth'], stats['not_viewed_bandwidth'], link]
for j in graph_cols: for j in graph_cols:
@ -424,21 +439,21 @@ class IWLA(object):
else: css = 'iwla_curday' else: css = 'iwla_curday'
months.setCellCSSClass(i-1, 0, css) months.setCellCSSClass(i-1, 0, css)
total[0] = 'Total' total[0] = g.gettext('Total')
total[5] = bytesToStr(total[5]) total[5] = bytesToStr(total[5])
total[6] = bytesToStr(total[6]) total[6] = bytesToStr(total[6])
months.appendRow(total) months.appendRow(total)
page.appendBlock(months) page.appendBlock(months)
def _generateDisplayWholeMonthStats(self): def _generateDisplayWholeMonthStats(self):
title = 'Stats for %s' % (conf.domain_name) title = '%s %s' % (g.gettext('Statistics for'), conf.domain_name)
filename = 'index.html' filename = 'index.html'
self.logger.info('==> Generate main page (%s)' % (filename)) self.logger.info('==> Generate main page (%s)' % (filename))
page = self.display.createPage(title, filename, conf.css_path) page = self.display.createPage(title, filename, conf.css_path)
last_update = '<b>Last update</b> %s<br />' % (time.strftime('%02d %b %Y %H:%M', time.localtime())) last_update = '<b>%s</b> %s<br />' % (g.gettext('Last update'), time.strftime('%02d %b %Y %H:%M', time.localtime()))
page.appendBlock(self.display.createBlock(DisplayHTMLRaw, last_update)) page.appendBlock(self.display.createBlock(DisplayHTMLRaw, last_update))
for year in sorted(self.meta_infos['stats'].keys(), reverse=True): for year in sorted(self.meta_infos['stats'].keys(), reverse=True):

View File

@ -1,4 +1,5 @@
import time import time
import gettext as g
from iwla import IWLA from iwla import IWLA
from iplugin import IPlugin from iplugin import IPlugin
@ -41,13 +42,13 @@ class IWLADisplayAllVisits(IPlugin):
last_access = sorted(hits.values(), key=lambda t: t['last_access'], reverse=True) last_access = sorted(hits.values(), key=lambda t: t['last_access'], reverse=True)
title = time.strftime('All visits - %B %Y', self.iwla.getCurTime()) title = time.strftime(g.gettext('All visits') + ' - %B %Y', self.iwla.getCurTime())
filename = 'all_visits.html' filename = 'all_visits.html'
path = self.iwla.getCurDisplayPath(filename) path = self.iwla.getCurDisplayPath(filename)
page = display.createPage(title, path, self.iwla.getConfValue('css_path', [])) page = display.createPage(title, path, self.iwla.getConfValue('css_path', []))
table = display.createBlock(DisplayHTMLBlockTable, 'Last seen', ['Host', 'Pages', 'Hits', 'Bandwidth', 'Last seen']) table = display.createBlock(DisplayHTMLBlockTable, g.gettext('Last seen'), [g.gettext('Host'), g.gettext('Pages'), g.gettext('Hits'), g.gettext('Bandwidth'), g.gettext('Last seen')])
table.setColsCSSClass(['', 'iwla_page', 'iwla_hit', 'iwla_bandwidth', '']) table.setColsCSSClass(['', 'iwla_page', 'iwla_hit', 'iwla_bandwidth', ''])
for super_hit in last_access: for super_hit in last_access:
@ -69,8 +70,8 @@ class IWLADisplayAllVisits(IPlugin):
display.addPage(page) display.addPage(page)
index = self.iwla.getDisplayIndex() index = self.iwla.getDisplayIndex()
link = '<a href=\'%s\'>All visits</a>' % (filename) link = '<a href=\'%s\'>%s</a>' % (g.gettext('All visits'), filename)
block = index.getBlock('Top visitors') block = index.getBlock(g.gettext('Top visitors'))
if block: if block:
block.setTitle('%s - %s' % (block.getTitle(), link)) block.setTitle('%s - %s' % (block.getTitle(), link))
else: else:

View File

@ -1,4 +1,5 @@
import time import time
import gettext as g
from iwla import IWLA from iwla import IWLA
from iplugin import IPlugin from iplugin import IPlugin
@ -68,17 +69,17 @@ class IWLADisplayReferers(IPlugin):
# All referers in a file # All referers in a file
if self.create_all_referers: if self.create_all_referers:
title = time.strftime('Connexion from - %B %Y', cur_time) title = time.strftime(g.gettext('Connexion from') + ' - %B %Y', cur_time)
filename = 'referers.html' filename = 'referers.html'
path = self.iwla.getCurDisplayPath(filename) path = self.iwla.getCurDisplayPath(filename)
page = display.createPage(title, path, self.iwla.getConfValue('css_path', [])) page = display.createPage(title, path, self.iwla.getConfValue('css_path', []))
table = display.createBlock(DisplayHTMLBlockTable, 'Connexion from', ['Origin', 'Pages', 'Hits']) table = display.createBlock(DisplayHTMLBlockTable, g.gettext('Connexion from'), [g.gettext('Origin'), g.gettext('Pages'), g.gettext('Hits')])
table.setColsCSSClass(['', 'iwla_page', 'iwla_hit']) table.setColsCSSClass(['', 'iwla_page', 'iwla_hit'])
total_search = [0]*3 total_search = [0]*3
table.appendRow(['<b>Search Engine</b>', '', '']) table.appendRow(['<b>%s</b>' % (g.gettext('Search Engine')), '', ''])
new_list = self.max_referers and top_search_engine_referers[:self.max_referers] or top_search_engine_referers new_list = self.max_referers and top_search_engine_referers[:self.max_referers] or top_search_engine_referers
for r,_ in new_list: for r,_ in new_list:
row = [r, search_engine_referers[r]['pages'], search_engine_referers[r]['hits']] row = [r, search_engine_referers[r]['pages'], search_engine_referers[r]['hits']]
@ -87,7 +88,7 @@ class IWLADisplayReferers(IPlugin):
table.appendRow(row) table.appendRow(row)
total_external = [0]*3 total_external = [0]*3
table.appendRow(['<b>External URL</b>', '', '']) table.appendRow(['<b>%s</b>' % (g.gettext('External URL')), '', ''])
new_list = self.max_referers and top_referers[:self.max_referers] or top_referers new_list = self.max_referers and top_referers[:self.max_referers] or top_referers
for r,_ in new_list: for r,_ in new_list:
row = [generateHTMLLink(r), referers[r]['pages'], referers[r]['hits']] row = [generateHTMLLink(r), referers[r]['pages'], referers[r]['hits']]
@ -96,7 +97,7 @@ class IWLADisplayReferers(IPlugin):
table.appendRow(row) table.appendRow(row)
total_robot = [0]*3 total_robot = [0]*3
table.appendRow(['<b>External URL (robot)</b>', '', '']) table.appendRow(['<b>%s</b>' % (g.gettext('External URL (robot)')), '', ''])
new_list = self.max_referers and top_robots_referers[:self.max_referers] or top_robots_referers new_list = self.max_referers and top_robots_referers[:self.max_referers] or top_robots_referers
for r,_ in new_list: for r,_ in new_list:
row = [generateHTMLLink(r), robots_referers[r]['pages'], robots_referers[r]['hits']] row = [generateHTMLLink(r), robots_referers[r]['pages'], robots_referers[r]['hits']]
@ -108,45 +109,45 @@ class IWLADisplayReferers(IPlugin):
display.addPage(page) display.addPage(page)
title = 'Top Referers' title = g.gettext('Top Referers')
if self.create_all_referers: if self.create_all_referers:
link = '<a href=\'%s\'>All Referers</a>' % (filename) link = '<a href=\'%s\'>%s</a>' % (filename, g.gettext('All Referers'))
title = '%s - %s' % (title, link) title = '%s - %s' % (title, link)
# Top referers in index # Top referers in index
table = display.createBlock(DisplayHTMLBlockTable, title, ['Origin', 'Pages', 'Hits']) table = display.createBlock(DisplayHTMLBlockTable, title, [g.gettext('Origin'), g.gettext('Pages'), g.gettext('Hits')])
table.setColsCSSClass(['', 'iwla_page', 'iwla_hit']) table.setColsCSSClass(['', 'iwla_page', 'iwla_hit'])
table.appendRow(['<b>Search Engine</b>', '', '']) table.appendRow(['<b>%s</b>' % (g.gettext('Search Engine')), '', ''])
for r,_ in top_search_engine_referers[:10]: for r,_ in top_search_engine_referers[:10]:
row = [r, search_engine_referers[r]['pages'], search_engine_referers[r]['hits']] row = [r, search_engine_referers[r]['pages'], search_engine_referers[r]['hits']]
total_search[1] -= search_engine_referers[r]['pages'] total_search[1] -= search_engine_referers[r]['pages']
total_search[2] -= search_engine_referers[r]['hits'] total_search[2] -= search_engine_referers[r]['hits']
table.appendRow(row) table.appendRow(row)
if total_search[1] or total_search[2]: if total_search[1] or total_search[2]:
total_search[0] = 'Others' total_search[0] = g.gettext('Others')
table.appendRow(total_search) table.appendRow(total_search)
table.setCellCSSClass(table.getNbRows()-1, 0, 'iwla_others') table.setCellCSSClass(table.getNbRows()-1, 0, 'iwla_others')
table.appendRow(['<b>External URL</b>', '', '']) table.appendRow(['<b>%s</b>' % (g.gettext('External URL')), '', ''])
for r,_ in top_referers[:10]: for r,_ in top_referers[:10]:
row = [generateHTMLLink(r), referers[r]['pages'], referers[r]['hits']] row = [generateHTMLLink(r), referers[r]['pages'], referers[r]['hits']]
total_external[1] -= referers[r]['pages'] total_external[1] -= referers[r]['pages']
total_external[2] -= referers[r]['hits'] total_external[2] -= referers[r]['hits']
table.appendRow(row) table.appendRow(row)
if total_external[1] or total_external[2]: if total_external[1] or total_external[2]:
total_external[0] = 'Others' total_external[0] = g.gettext('Others')
table.appendRow(total_external) table.appendRow(total_external)
table.setCellCSSClass(table.getNbRows()-1, 0, 'iwla_others') table.setCellCSSClass(table.getNbRows()-1, 0, 'iwla_others')
table.appendRow(['<b>External URL (robot)</b>', '', '']) table.appendRow(['<b>%s</b>' % (g.gettext('External URL (robot)')), '', ''])
for r,_ in top_robots_referers[:10]: for r,_ in top_robots_referers[:10]:
row = [generateHTMLLink(r), robots_referers[r]['pages'], robots_referers[r]['hits']] row = [generateHTMLLink(r), robots_referers[r]['pages'], robots_referers[r]['hits']]
total_robot[1] -= robots_referers[r]['pages'] total_robot[1] -= robots_referers[r]['pages']
total_robot[2] -= robots_referers[r]['hits'] total_robot[2] -= robots_referers[r]['hits']
table.appendRow(row) table.appendRow(row)
if total_robot[1] or total_robot[2]: if total_robot[1] or total_robot[2]:
total_robot[0] = 'Others' total_robot[0] = g.gettext('Others')
table.appendRow(total_robot) table.appendRow(total_robot)
table.setCellCSSClass(table.getNbRows()-1, 0, 'iwla_others') table.setCellCSSClass(table.getNbRows()-1, 0, 'iwla_others')
@ -154,14 +155,14 @@ class IWLADisplayReferers(IPlugin):
# All key phrases in a file # All key phrases in a file
if self.create_all_key_phrases: if self.create_all_key_phrases:
title = time.strftime('Key Phrases - %B %Y', cur_time) title = time.strftime(g.gettext('Key Phrases') + ' - %B %Y', cur_time)
filename = 'key_phrases.html' filename = 'key_phrases.html'
path = self.iwla.getCurDisplayPath(filename) path = self.iwla.getCurDisplayPath(filename)
total_search = [0]*2 total_search = [0]*2
page = display.createPage(title, path, self.iwla.getConfValue('css_path', [])) page = display.createPage(title, path, self.iwla.getConfValue('css_path', []))
table = display.createBlock(DisplayHTMLBlockTable, 'Top key phrases', ['Key phrase', 'Search']) table = display.createBlock(DisplayHTMLBlockTable, g.gettext('Top key phrases'), [g.gettext('Key phrase'), g.gettext('Search')])
table.setColsCSSClass(['', 'iwla_search']) table.setColsCSSClass(['', 'iwla_search'])
new_list = self.max_key_phrases and top_key_phrases[:self.max_key_phrases] or top_key_phrases new_list = self.max_key_phrases and top_key_phrases[:self.max_key_phrases] or top_key_phrases
for phrase in new_list: for phrase in new_list:
@ -171,19 +172,19 @@ class IWLADisplayReferers(IPlugin):
display.addPage(page) display.addPage(page)
title = 'Top key phrases' title = g.gettext('Top key phrases')
if self.create_all_key_phrases: if self.create_all_key_phrases:
link = '<a href=\'%s\'>All key phrases</a>' % (filename) link = '<a href=\'%s\'>%s</a>' % (filename, g.gettext('All key phrases'))
title = '%s - %s' % (title, link) title = '%s - %s' % (title, link)
# Top key phrases in index # Top key phrases in index
table = display.createBlock(DisplayHTMLBlockTable, title, ['Key phrase', 'Search']) table = display.createBlock(DisplayHTMLBlockTable, title, [g.gettext('Key phrase'), g.gettext('Search')])
table.setColsCSSClass(['', 'iwla_search']) table.setColsCSSClass(['', 'iwla_search'])
for phrase in top_key_phrases[:10]: for phrase in top_key_phrases[:10]:
table.appendRow([phrase[0], phrase[1]]) table.appendRow([phrase[0], phrase[1]])
total_search[1] -= phrase[1] total_search[1] -= phrase[1]
if total_search[1]: if total_search[1]:
total_search[0] = 'Others' total_search[0] = g.gettext('Others')
table.appendRow(total_search) table.appendRow(total_search)
table.setCellCSSClass(table.getNbRows()-1, 0, 'iwla_others') table.setCellCSSClass(table.getNbRows()-1, 0, 'iwla_others')
index.appendBlock(table) index.appendBlock(table)

View File

@ -1,4 +1,5 @@
import time import time
import gettext as g
from iwla import IWLA from iwla import IWLA
from iplugin import IPlugin from iplugin import IPlugin
@ -47,10 +48,10 @@ class IWLADisplayTopDownloads(IPlugin):
if self.create_all_downloads: if self.create_all_downloads:
filename = 'top_downloads.html' filename = 'top_downloads.html'
path = self.iwla.getCurDisplayPath(filename) path = self.iwla.getCurDisplayPath(filename)
title = time.strftime('All Downloads - %B %Y', self.iwla.getCurTime()) title = time.strftime(g.gettext('All Downloads') + ' - %B %Y', self.iwla.getCurTime())
page = display.createPage(title, path, self.iwla.getConfValue('css_path', [])) page = display.createPage(title, path, self.iwla.getConfValue('css_path', []))
table = display.createBlock(DisplayHTMLBlockTable, 'All Downloads', ['URI', 'Hit']) table = display.createBlock(DisplayHTMLBlockTable, g.gettext('All Downloads'), [g.gettext('URI'), g.gettext('Hit')])
table.setColsCSSClass(['', 'iwla_hit']) table.setColsCSSClass(['', 'iwla_hit'])
total_entrance = [0]*2 total_entrance = [0]*2
@ -62,21 +63,21 @@ class IWLADisplayTopDownloads(IPlugin):
display.addPage(page) display.addPage(page)
title = 'Top Downloads' title = g.gettext('Top Downloads')
if self.create_all_downloads: if self.create_all_downloads:
link = '<a href=\'%s\'>All Downloads</a>' % (filename) link = '<a href=\'%s\'>%s</a>' % (filename, g.gettext('All Downloads'))
title = '%s - %s' % (title, link) title = '%s - %s' % (title, link)
# Top in index # Top in index
index = self.iwla.getDisplayIndex() index = self.iwla.getDisplayIndex()
table = display.createBlock(DisplayHTMLBlockTable, title, ['URI', 'Hits']) table = display.createBlock(DisplayHTMLBlockTable, title, [g.gettext('URI'), g.gettext('Hits')])
table.setColsCSSClass(['', 'iwla_hit']) table.setColsCSSClass(['', 'iwla_hit'])
for (uri, entrance) in top_downloads[:10]: for (uri, entrance) in top_downloads[:10]:
table.appendRow([generateHTMLLink(uri), entrance]) table.appendRow([generateHTMLLink(uri), entrance])
total_entrance[1] -= entrance total_entrance[1] -= entrance
if total_entrance[1]: if total_entrance[1]:
total_entrance[0] = 'Others' total_entrance[0] = g.gettext('Others')
table.appendRow(total_entrance) table.appendRow(total_entrance)
table.setCellCSSClass(table.getNbRows()-1, 0, 'iwla_others') table.setCellCSSClass(table.getNbRows()-1, 0, 'iwla_others')
index.appendBlock(table) index.appendBlock(table)

View File

@ -1,4 +1,5 @@
import time import time
import gettext as g
from iwla import IWLA from iwla import IWLA
from iplugin import IPlugin from iplugin import IPlugin
@ -45,12 +46,12 @@ class IWLADisplayTopHits(IPlugin):
# All in a file # All in a file
if self.create_all_hits: if self.create_all_hits:
title = time.strftime('All Hits - %B %Y', self.iwla.getCurTime()) title = time.strftime(g.gettext('All Hits') + ' - %B %Y', self.iwla.getCurTime())
filename = 'top_hits.html' filename = 'top_hits.html'
path = self.iwla.getCurDisplayPath(filename) path = self.iwla.getCurDisplayPath(filename)
page = display.createPage(title, path, self.iwla.getConfValue('css_path', [])) page = display.createPage(title, path, self.iwla.getConfValue('css_path', []))
table = display.createBlock(DisplayHTMLBlockTable, 'All Hits', ['URI', 'Entrance']) table = display.createBlock(DisplayHTMLBlockTable, g.gettext('All Hits'), [g.gettext('URI'), g.gettext('Entrance')])
table.setColsCSSClass(['', 'iwla_hit']) table.setColsCSSClass(['', 'iwla_hit'])
total_hits = [0]*2 total_hits = [0]*2
new_list = self.max_hits and top_hits[:self.max_hits] or top_hits new_list = self.max_hits and top_hits[:self.max_hits] or top_hits
@ -63,19 +64,19 @@ class IWLADisplayTopHits(IPlugin):
title = 'Top Hits' title = 'Top Hits'
if self.create_all_hits: if self.create_all_hits:
link = '<a href=\'%s\'>All Hits</a>' % (filename) link = '<a href=\'%s\'>%s</a>' % (filename, g.gettext('All Hits'))
title = '%s - %s' % (title, link) title = '%s - %s' % (title, link)
# Top in index # Top in index
index = self.iwla.getDisplayIndex() index = self.iwla.getDisplayIndex()
table = display.createBlock(DisplayHTMLBlockTable, title, ['URI', 'Entrance']) table = display.createBlock(DisplayHTMLBlockTable, title, [g.gettext('URI'), g.gettext('Entrance')])
table.setColsCSSClass(['', 'iwla_hit']) table.setColsCSSClass(['', 'iwla_hit'])
for (uri, entrance) in top_hits[:10]: for (uri, entrance) in top_hits[:10]:
table.appendRow([generateHTMLLink(uri), entrance]) table.appendRow([generateHTMLLink(uri), entrance])
total_hits[1] -= entrance total_hits[1] -= entrance
if total_hits[1]: if total_hits[1]:
total_hits[0] = 'Others' total_hits[0] = g.gettext('Others')
table.appendRow(total_hits) table.appendRow(total_hits)
table.setCellCSSClass(table.getNbRows()-1, 0, 'iwla_others') table.setCellCSSClass(table.getNbRows()-1, 0, 'iwla_others')
index.appendBlock(table) index.appendBlock(table)

View File

@ -1,4 +1,5 @@
import time import time
import gettext as g
from iwla import IWLA from iwla import IWLA
from iplugin import IPlugin from iplugin import IPlugin
@ -45,12 +46,12 @@ class IWLADisplayTopPages(IPlugin):
# All in a page # All in a page
if self.create_all_pages: if self.create_all_pages:
title = time.strftime('All Pages - %B %Y', self.iwla.getCurTime()) title = time.strftime(g.gettext('All Pages') + ' - %B %Y', self.iwla.getCurTime())
filename = 'top_pages.html' filename = 'top_pages.html'
path = self.iwla.getCurDisplayPath(filename) path = self.iwla.getCurDisplayPath(filename)
page = display.createPage(title, path, self.iwla.getConfValue('css_path', [])) page = display.createPage(title, path, self.iwla.getConfValue('css_path', []))
table = display.createBlock(DisplayHTMLBlockTable, 'All Pages', ['URI', 'Entrance']) table = display.createBlock(DisplayHTMLBlockTable, g.gettext('All Pages'), [g.gettext('URI'), g.gettext('Entrance')])
table.setColsCSSClass(['', 'iwla_hit']) table.setColsCSSClass(['', 'iwla_hit'])
total_hits = [0]*2 total_hits = [0]*2
new_list = self.max_pages and top_pages[:self.max_pages] or top_pages new_list = self.max_pages and top_pages[:self.max_pages] or top_pages
@ -61,21 +62,21 @@ class IWLADisplayTopPages(IPlugin):
display.addPage(page) display.addPage(page)
title = 'Top Pages' title = g.gettext('Top Pages')
if self.create_all_pages: if self.create_all_pages:
link = '<a href=\'%s\'>All Pages</a>' % (filename) link = '<a href=\'%s\'>%s</a>' % (filename, g.gettext('All Pages'))
title = '%s - %s' % (title, link) title = '%s - %s' % (title, link)
# Top in index # Top in index
index = self.iwla.getDisplayIndex() index = self.iwla.getDisplayIndex()
table = display.createBlock(DisplayHTMLBlockTable, title, ['URI', 'Entrance']) table = display.createBlock(DisplayHTMLBlockTable, title, [g.gettext('URI'), g.gettext('Entrance')])
table.setColsCSSClass(['', 'iwla_hit']) table.setColsCSSClass(['', 'iwla_hit'])
for (uri, entrance) in top_pages[:10]: for (uri, entrance) in top_pages[:10]:
table.appendRow([generateHTMLLink(uri), entrance]) table.appendRow([generateHTMLLink(uri), entrance])
total_hits[1] -= entrance total_hits[1] -= entrance
if total_hits[1]: if total_hits[1]:
total_hits[0] = 'Others' total_hits[0] = g.gettext('Others')
table.appendRow(total_hits) table.appendRow(total_hits)
table.setCellCSSClass(table.getNbRows()-1, 0, 'iwla_others') table.setCellCSSClass(table.getNbRows()-1, 0, 'iwla_others')
index.appendBlock(table) index.appendBlock(table)

View File

@ -1,4 +1,5 @@
import time import time
import gettext as g
from iwla import IWLA from iwla import IWLA
from iplugin import IPlugin from iplugin import IPlugin
@ -49,7 +50,7 @@ class IWLADisplayTopVisitors(IPlugin):
top_visitors = [hits[h[0]] for h in top_bandwidth[:10]] top_visitors = [hits[h[0]] for h in top_bandwidth[:10]]
index = self.iwla.getDisplayIndex() index = self.iwla.getDisplayIndex()
table = display.createBlock(DisplayHTMLBlockTable, 'Top visitors', ['Host', 'Pages', 'Hits', 'Bandwidth', 'Last seen']) table = display.createBlock(DisplayHTMLBlockTable, g.gettext('Top visitors'), [g.gettext('Host'), g.gettext('Pages'), g.gettext('Hits'), g.gettext('Bandwidth'), g.gettext('Last seen')])
table.setColsCSSClass(['', 'iwla_page', 'iwla_hit', 'iwla_bandwidth', '']) table.setColsCSSClass(['', 'iwla_page', 'iwla_hit', 'iwla_bandwidth', ''])
for super_hit in top_visitors: for super_hit in top_visitors:
address = super_hit['remote_addr'] address = super_hit['remote_addr']
@ -69,7 +70,7 @@ class IWLADisplayTopVisitors(IPlugin):
total[3] -= super_hit['bandwidth'] total[3] -= super_hit['bandwidth']
table.appendRow(row) table.appendRow(row)
if total[1] or total[2] or total[3]: if total[1] or total[2] or total[3]:
total[0] = 'Others' total[0] = g.gettext('Others')
total[3] = bytesToStr(total[3]) total[3] = bytesToStr(total[3])
total[4] = '' total[4] = ''
table.appendRow(total) table.appendRow(total)