advancededitor, translator, writer
26,447
edits
Bumsakalaka (talk | contribs) |
Bumsakalaka (talk | contribs) |
||
(5 intermediate revisions by the same user not shown) | |||
Line 18: | Line 18: | ||
** [[User:Bumsakalaka/JCloisterZoneLocale]] | ** [[User:Bumsakalaka/JCloisterZoneLocale]] | ||
** [[User:Bumsakalaka/Cliffs_and_Waterfalls]] | ** [[User:Bumsakalaka/Cliffs_and_Waterfalls]] | ||
** [[User:Bumsakalaka/NKO]] | ** [[User:Bumsakalaka/NKO]] New King's Orders | ||
** [[User:Bumsakalaka/WP]] | ** [[User:Bumsakalaka/WP]] Wandering Preachers | ||
** [[User:Bumsakalaka/Gambler%27s_Luck_(Fan_Expansion)]] | ** [[User:Bumsakalaka/Gambler%27s_Luck_(Fan_Expansion)]] The Pope of Avignon | ||
** [[User:Bumsakalaka/ČV]] | ** [[User:Bumsakalaka/ČV]] Czech Flag | ||
** [[User:Bumsakalaka/ | ** [[User:Bumsakalaka/HA]] Halfling Abbey | ||
** [[User:Bumsakalaka/ | ** [[User:Bumsakalaka/JS]] JPutt's Seasons | ||
** <del>[[User:Bumsakalaka/ĎČ]]</del> | ** <del>[[User:Bumsakalaka/ĎČ]]</del> | ||
Line 205: | Line 205: | ||
! Template || Expansion EN C1 || Rozšírenie SK C1 || Expansion EN C2 || Rozšírenie SK C2 | ! Template || Expansion EN C1 || Rozšírenie SK C1 || Expansion EN C2 || Rozšírenie SK C2 | ||
|- | |- | ||
| <nowiki>{{BaseGameLink}}</nowiki> [[Template:BaseGameLink|edit]] || {{BaseGameLink/en| | | <nowiki>{{BaseGameLink}}</nowiki> [[Template:BaseGameLink|edit]] || {{BaseGameLink/en|edition=C1}} || {{BaseGameLink/sk|edition=C1}} || {{BaseGameLink/en}} || {{BaseGameLink/sk}} | ||
|- | |- | ||
| <nowiki>{{FarmersLink}}</nowiki> [[Template:FarmersLink|edit]] || - || - || {{FarmersLink/en}} || {{FarmersLink/sk}} | | <nowiki>{{FarmersLink}}</nowiki> [[Template:FarmersLink|edit]] || - || - || {{FarmersLink/en}} || {{FarmersLink/sk}} | ||
|- | |- | ||
| <nowiki>{{RiverLink}}</nowiki> [[Template:RiverLink|edit]] || {{RiverLink/en| | | <nowiki>{{RiverLink}}</nowiki> [[Template:RiverLink|edit]] || {{RiverLink/en|edition=C1}} || {{RiverLink/sk|edition=C1}} || {{RiverLink/en}} || {{RiverLink/sk}} | ||
|- | |- | ||
| <nowiki>{{AbbotLink}}</nowiki> [[Template:AbbotLink|edit]] || - || - || {{AbbotLink/en}} || {{AbbotLink/sk}} | | <nowiki>{{AbbotLink}}</nowiki> [[Template:AbbotLink|edit]] || - || - || {{AbbotLink/en}} || {{AbbotLink/sk}} | ||
Line 215: | Line 215: | ||
! colspan="5" | '''Standalone playable expansions''' | ! colspan="5" | '''Standalone playable expansions''' | ||
|- | |- | ||
| <nowiki>{{WheelFortuneLink}}</nowiki> [[Template:WheelFortuneLink|edit]] || {{WheelFortuneLink/en| | | <nowiki>{{WheelFortuneLink}}</nowiki> [[Template:WheelFortuneLink|edit]] || {{WheelFortuneLink/en|edition=C1}} || {{WheelFortuneLink/sk|edition=C1}} || - || - | ||
|- | |- | ||
| <nowiki>{{MistsOverCarcassonneLink}}</nowiki> [[Template:MistsOverCarcassonneLink|edit]]|| - || - || {{MistsOverCarcassonneLink/en|}} || {{MistsOverCarcassonneLink/sk|}} | | <nowiki>{{MistsOverCarcassonneLink}}</nowiki> [[Template:MistsOverCarcassonneLink|edit]]|| - || - || {{MistsOverCarcassonneLink/en|}} || {{MistsOverCarcassonneLink/sk|}} | ||
Line 221: | Line 221: | ||
! colspan="5" | '''Large Expansions''' (expansion number order) | ! colspan="5" | '''Large Expansions''' (expansion number order) | ||
|- | |- | ||
| <nowiki>{{InnsCathedralsLink}}</nowiki> [[Template:InnsCathedralsLink|edit]]|| {{InnsCathedralsLink/en| | | <nowiki>{{InnsCathedralsLink}}</nowiki> [[Template:InnsCathedralsLink|edit]]|| {{InnsCathedralsLink/en|edition=C1}} || {{InnsCathedralsLink/sk|edition=C1}} || {{InnsCathedralsLink/en|}} || {{InnsCathedralsLink/sk|}} | ||
|- | |- | ||
| <nowiki>{{TradersBuildersLink}}</nowiki> [[Template:TradersBuildersLink|edit]]|| {{TradersBuildersLink/en| | | <nowiki>{{TradersBuildersLink}}</nowiki> [[Template:TradersBuildersLink|edit]]|| {{TradersBuildersLink/en|edition=C1}} || {{TradersBuildersLink/sk|edition=C1}} || {{TradersBuildersLink/en|}} || {{TradersBuildersLink/sk|}} | ||
|- | |- | ||
| <nowiki>{{PrincessDragonLink}}</nowiki> [[Template:PrincessDragonLink|edit]]|| {{PrincessDragonLink/en| | | <nowiki>{{PrincessDragonLink}}</nowiki> [[Template:PrincessDragonLink|edit]]|| {{PrincessDragonLink/en|edition=C1}} || {{PrincessDragonLink/sk|edition=C1}} || {{PrincessDragonLink/en|}} || {{PrincessDragonLink/sk|}} | ||
|- | |- | ||
| <nowiki>{{TowerLink}}</nowiki> [[Template:TowerLink|edit]]|| {{TowerLink/en| | | <nowiki>{{TowerLink}}</nowiki> [[Template:TowerLink|edit]]|| {{TowerLink/en|edition=C1}} || {{TowerLink/sk|edition=C1}} || {{TowerLink/en|}} || {{TowerLink/sk|}} | ||
|- | |- | ||
| <nowiki>{{AbbeyMayorLink}}</nowiki> [[Template:AbbeyMayorLink|edit]]|| {{AbbeyMayorLink/en| | | <nowiki>{{AbbeyMayorLink}}</nowiki> [[Template:AbbeyMayorLink|edit]]|| {{AbbeyMayorLink/en|edition=C1}} || {{AbbeyMayorLink/sk|edition=C1}} || {{AbbeyMayorLink/en|}} || {{AbbeyMayorLink/sk|}} | ||
|- | |- | ||
| <nowiki>{{CountKingRobberLink}}</nowiki> [[Template:CountKingRobberLink|edit]]|| {{CountKingRobberLink/en| | | <nowiki>{{CountKingRobberLink}}</nowiki> [[Template:CountKingRobberLink|edit]]|| {{CountKingRobberLink/en|edition=C1}} || {{CountKingRobberLink/sk|edition=C1}} || {{CountKingRobberLink/en}} || {{CountKingRobberLink/sk}} | ||
|- | |- | ||
| <nowiki>{{BridgesCastlesBazaarsLink}}</nowiki> [[Template:BridgesCastlesBazaarsLink|edit]]|| {{BridgesCastlesBazaarsLink/en| | | <nowiki>{{BridgesCastlesBazaarsLink}}</nowiki> [[Template:BridgesCastlesBazaarsLink|edit]]|| {{BridgesCastlesBazaarsLink/en|edition=C1}} || {{BridgesCastlesBazaarsLink/sk|edition=C1}} || {{BridgesCastlesBazaarsLink/en}} || {{BridgesCastlesBazaarsLink/sk}} | ||
|- | |- | ||
| <nowiki>{{HillsSheepLink}}</nowiki> [[Template:HillsSheepLink|edit]]|| {{HillsSheepLink/en| | | <nowiki>{{HillsSheepLink}}</nowiki> [[Template:HillsSheepLink|edit]]|| {{HillsSheepLink/en|edition=C1}} || {{HillsSheepLink/sk|edition=C1}} || {{HillsSheepLink/en}} || {{HillsSheepLink/sk}} | ||
|- | |- | ||
| <nowiki>{{UnderBigTopLink}}</nowiki> [[Template:UnderBigTopLink|edit]]|| - || - || {{UnderBigTopLink/en}} || {{UnderBigTopLink/sk}} | | <nowiki>{{UnderBigTopLink}}</nowiki> [[Template:UnderBigTopLink|edit]]|| - || - || {{UnderBigTopLink/en}} || {{UnderBigTopLink/sk}} | ||
Line 243: | Line 243: | ||
| <nowiki>{{BesiegersLink}}</nowiki> [[Template:BesiegersLink|edit]]|| {{BesiegersLink/en}} || {{BesiegersLink/sk}} || - || - | | <nowiki>{{BesiegersLink}}</nowiki> [[Template:BesiegersLink|edit]]|| {{BesiegersLink/en}} || {{BesiegersLink/sk}} || - || - | ||
|- | |- | ||
| <nowiki>{{ | | <nowiki>{{CatharsLink}}</nowiki> [[Template:CatharsLink|edit]]|| {{CatharsLink/en}} || {{CatharsLink/sk}} || - || - | ||
|- | |- | ||
| <nowiki>{{ | | <nowiki>{{SiegeLink}}</nowiki> [[Template:SiegeLink|edit]]|| {{SiegeLink/en}} || {{SiegeLink/sk}} || - || - | ||
|- | |- | ||
| <nowiki>{{ | | <nowiki>{{LabyrinthLink}}</nowiki> [[Template:LabyrinthLink|edit]]|| - || - || {{LabyrinthLink/en}} || {{LabyrinthLink/sk}} | ||
|- | |- | ||
| <nowiki>{{ | | <nowiki>{{RiverLink}}</nowiki> [[Template:RiverLink|edit]]|| {{RiverLink/en|edition=C1}} || {{RiverLink/sk|edition=C1}} || {{RiverLink/en}} || {{RiverLink/sk}} | ||
|- | |- | ||
| <nowiki>{{RiverLink}}</nowiki> [[Template:RiverLink|edit]]|| {{RiverLink/en| | | <nowiki>{{RiverLink|variant=I}}</nowiki> [[Template:RiverLink|edit]]|| {{RiverLink/en|variant=I|edition=C1}} || {{RiverLink/sk|variant=I|edition=C1}} || {{RiverLink/en|variant=I}} || {{RiverLink/sk|variant=I}} | ||
|- | |- | ||
| <nowiki>{{RiverLink|variant= | | <nowiki>{{RiverLink|variant=II}}</nowiki> [[Template:RiverLink|edit]]|| {{RiverLink/en|variant=II|edition=C1}} || {{RiverLink/sk|variant=II|edition=C1}} || {{RiverLink/en|variant=II}} || {{RiverLink/sk|variant=II}} | ||
|- | |- | ||
| <nowiki>{{RiverLink|variant=III}}</nowiki> [[Template:RiverLink|edit]]|| {{RiverLink/en|variant=III|edition=C1}} || {{RiverLink/sk|variant=III|edition=C1}} || - || - | |||
| <nowiki>{{RiverLink|variant=III}}</nowiki> [[Template:RiverLink|edit]]|| {{RiverLink/en|variant=III| | |||
|- | |- | ||
| <nowiki>{{RiverLink|variant=20}}</nowiki> [[Template:RiverLink|edit]]|| - || - || {{RiverLink/en|variant=20}} || {{RiverLink/sk|variant=20}} | | <nowiki>{{RiverLink|variant=20}}</nowiki> [[Template:RiverLink|edit]]|| - || - || {{RiverLink/en|variant=20}} || {{RiverLink/sk|variant=20}} | ||
Line 291: | Line 289: | ||
| <nowiki>{{CastleLordsLink}}</nowiki> [[Template:CastleLordsLink|edit]]|| {{CastleLordsLink/en}} || {{CastleLordsLink/sk}} || || | | <nowiki>{{CastleLordsLink}}</nowiki> [[Template:CastleLordsLink|edit]]|| {{CastleLordsLink/en}} || {{CastleLordsLink/sk}} || || | ||
|- | |- | ||
| <nowiki>{{PorxadaLink}}</nowiki> [[Template:PorxadaLink|edit]]|| {{PorxadaLink/en| | | <nowiki>{{PorxadaLink}}</nowiki> [[Template:PorxadaLink|edit]]|| {{PorxadaLink/en|edition=C1}} || {{PorxadaLink/sk|edition=C1}} || || | ||
|- | |- | ||
| <nowiki>{{RobbersSonLink}}</nowiki> [[Template:RobbersSonLink|edit]] || {{RobbersSonLink/en}} || {{RobbersSonLink/sk}} || {{RobbersSonLink/en}} || {{RobbersSonLink/sk}} | | <nowiki>{{RobbersSonLink}}</nowiki> [[Template:RobbersSonLink|edit]] || {{RobbersSonLink/en}} || {{RobbersSonLink/sk}} || {{RobbersSonLink/en}} || {{RobbersSonLink/sk}} | ||
|- | |- | ||
| <nowiki>{{WellsLink}}</nowiki> [[Template:WellsLink|edit]]|| {{WellsLink/en}} || {{WellsLink/sk}} || |- | | <nowiki>{{WellsLink}}</nowiki> [[Template:WellsLink|edit]]|| {{WellsLink/en}} || {{WellsLink/sk}} || {{WellsLink/en}} || {{WellsLink/sk}} | ||
|- | |||
|} | |} | ||
Line 343: | Line 342: | ||
|- | |- | ||
| Collapsible content || [https://www.mediawiki.org/wiki/Manual:Collapsible_elements Manual:Collapsible_elements] | | Collapsible content || [https://www.mediawiki.org/wiki/Manual:Collapsible_elements Manual:Collapsible_elements] | ||
|- | |||
| Grammar forms of words for translators || [https://www.mediawiki.org/wiki/Manual:$wgGrammarForms Manual:$wgGrammarForms] | |||
|} | |} | ||
Line 663: | Line 664: | ||
== Ideas for MediaWiki extensions == | == Ideas for MediaWiki extensions == | ||
=== Automatic purge page after mark for translations === | |||
* Automatic purge page after mark for translations - this will speed up distribution of changes of translated page, specially for templates | * Automatic purge page after mark for translations - this will speed up distribution of changes of translated page, specially for templates | ||
* Styles for mobile view like <code>data-mobile-style="blah blah"</code> which will be used on mobile view and will rewrite <code>style</code> if any | <pre style="margin-left:5ex;text-decoration:line-through;"><nowiki>https://www.mediawiki.org/wiki/Manual:Pywikibot/touch.py | ||
* Find a way how to generate mobile device cache and desktop device cache file and provide it be template | [telegram] <jhsoby> | ||
[telegram] <jhsoby> `python3 pwb.py touch -transcludes:"your template's name" | |||
</nowiki></pre> | |||
** Check also proper settings of [[https://www.mediawiki.org/wiki/Manual:Job_queue Manual:Job_queue]] | |||
=== Developer Search === | |||
* Search over source codes like [[Special:ReplaceText]] but without possibility of accidentally replacing text. | |||
=== Mobile depends parsing, which stores two version of same page. One for mobile devices and one for desktops. It allows to change styles etc. directly in Templates and in content === | |||
* <del>Styles for mobile view like <code>data-mobile-style="blah blah"</code> which will be used on mobile view and will rewrite <code>style</code> if any</del> | |||
* <del>Find a way how to generate mobile device cache and desktop device cache file and provide it be template | |||
** <div>Example for show different cache for mobile and desktop by MobileDetect extention | ** <div>Example for show different cache for mobile and desktop by MobileDetect extention | ||
<pre style="margin-left:5ex"><nowiki>$mobile = wfMobileDetect(); | <pre style="margin-left:5ex;text-decoration:line-through;"><nowiki>$mobile = wfMobileDetect(); | ||
$cacheKey = $title->getPrefixedDBkey(); | $cacheKey = $title->getPrefixedDBkey(); | ||
if ($mobile) { | if ($mobile) { | ||
$cacheKey .= '-mobile'; | $cacheKey .= '-mobile'; | ||
Line 675: | Line 686: | ||
$cacheKey .= '-desktop'; | $cacheKey .= '-desktop'; | ||
} | } | ||
$page = $cache->get($cacheKey); | $page = $cache->get($cacheKey); | ||
if (!$page) { | if (!$page) { | ||
// Generate the page and store it in the cache | // Generate the page and store it in the cache | ||
Line 683: | Line 692: | ||
$cache->set($cacheKey, $page); | $cache->set($cacheKey, $page); | ||
} | } | ||
// Output the page | |||
echo $page;</nowiki></pre></div></del> | |||
** <del><div>Example by MobileContext extension which is part of MediaWiki | |||
<pre style="margin-left:5ex;text-decoration:line-through;"><nowiki>$context = MobileContext::singleton(); | |||
<pre style="margin-left:5ex"><nowiki>$context = MobileContext::singleton(); | |||
$isMobile = $context->shouldDisplayMobileView(); | $isMobile = $context->shouldDisplayMobileView(); | ||
if ($isMobile) { | if ($isMobile) { | ||
// Code for mobile devices | // Code for mobile devices | ||
Line 696: | Line 703: | ||
// Code for non-mobile devices | // Code for non-mobile devices | ||
} | } | ||
</nowiki></pre></div> | </nowiki></pre></div></del> | ||
** <div>New parser function which test if current user is mobile device or not usage <code><nowiki>{{#ifmobile:stuff for mobiles|stuff for destop}}</nowiki></code> | ** <del><div>New parser function which test if current user is mobile device or not usage <code><nowiki>{{#ifmobile:stuff for mobiles|stuff for destop}}</nowiki></code> | ||
<pre style="margin-left:5ex"><nowiki> $parser->setFunctionHook( 'ifmobile', static function ( Parser $parser, $mobile_input = '', $nomobile_input = '' ) { | <pre style="margin-left:5ex;text-decoration:line-through;"><nowiki> $parser->setFunctionHook( 'ifmobile', static function ( Parser $parser, $mobile_input = '', $nomobile_input = '' ) { | ||
if ( wfMobileDetect() ) { | if ( wfMobileDetect() ) { | ||
return $parser->recursiveTagParse( $mobile_input ); | return $parser->recursiveTagParse( $mobile_input ); | ||
Line 706: | Line 713: | ||
} | } | ||
} ); | } ); | ||
</nowiki></pre></div> | </nowiki></pre></div></del> | ||
** <p>Delete cache for both page $title = /* the title of the page to purge */; | ** <del><p>Delete cache for both page $title = /* the title of the page to purge */; | ||
<pre style="margin-left:5ex"><nowiki> | <pre style="margin-left:5ex;text-decoration:line-through;"><nowiki> | ||
$cacheKeyDesktop = $title->getPrefixedDBkey() . '-desktop'; | $cacheKeyDesktop = $title->getPrefixedDBkey() . '-desktop'; | ||
$cacheKeyMobile = $title->getPrefixedDBkey() . '-mobile'; | $cacheKeyMobile = $title->getPrefixedDBkey() . '-mobile'; | ||
$cache->delete($cacheKeyDesktop); | $cache->delete($cacheKeyDesktop); | ||
$cache->delete($cacheKeyMobile);</nowiki></pre></p> | $cache->delete($cacheKeyMobile);</nowiki></pre></p></del> | ||
** <del><p>Call public <code><nowiki>static function onArticlePurge( &$article ) { ... }</nowiki></code> | |||
<pre style="margin-left:5ex;text-decoration:line-through;"><nowiki> | |||
extension.json | extension.json | ||
{ | { | ||
"Hooks": { | "Hooks": { | ||
Line 726: | Line 730: | ||
} | } | ||
} | } | ||
extenstion file | extenstion file | ||
namespace MediaWiki\Extension\MyExtension; | namespace MediaWiki\Extension\MyExtension; | ||
class Hooks { | class Hooks { | ||
public static function onArticlePurge( $wikiPage ) { | public static function onArticlePurge( $wikiPage ) { | ||
$title = $wikiPage->getTitle(); | $title = $wikiPage->getTitle(); | ||
$cache = \MediaWiki\MediaWikiServices::getInstance()->getMainWANObjectCache(); | $cache = \MediaWiki\MediaWikiServices::getInstance()->getMainWANObjectCache(); | ||
// Get the cache keys for mobile and desktop versions | // Get the cache keys for mobile and desktop versions | ||
$cacheKeyDesktop = $cache->makeKey( 'page', $title->getPrefixedDBkey(), 'desktop' ); | $cacheKeyDesktop = $cache->makeKey( 'page', $title->getPrefixedDBkey(), 'desktop' ); | ||
$cacheKeyMobile = $cache->makeKey( 'page', $title->getPrefixedDBkey(), 'mobile' ); | $cacheKeyMobile = $cache->makeKey( 'page', $title->getPrefixedDBkey(), 'mobile' ); | ||
// Delete both caches | // Delete both caches | ||
$cache->delete( $cacheKeyDesktop ); | $cache->delete( $cacheKeyDesktop ); | ||
$cache->delete( $cacheKeyMobile ); | $cache->delete( $cacheKeyMobile ); | ||
return true; | return true; | ||
} | } | ||
}</nowiki></pre> | }</nowiki></pre> | ||
</p | </p></del> | ||
** <del>Another solution CustomCacheKey,but it looks like not used that $thatus->value['cacheKey'] value when reading the cache, need to be tests. If this is working, this will be best solution. | |||
<pre style="margin-left:5ex;text-decoration:line-through;"><nowiki><?php | |||
extensions/CustomCacheKey/CustomCacheKey.php | extensions/CustomCacheKey/CustomCacheKey.php | ||
class CustomCacheKey { | class CustomCacheKey { | ||
public static function onPageContentSaveComplete($wikiPage, $user, $content, $summary, $isMinor, $isWatch, $section, $flags, $revision, $status) { | public static function onPageContentSaveComplete($wikiPage, $user, $content, $summary, $isMinor, $isWatch, $section, $flags, $revision, $status) { | ||
Line 766: | Line 762: | ||
} | } | ||
} | } | ||
extension.json | extension.json | ||
{ | { | ||
"Hooks": { | "Hooks": { | ||
Line 774: | Line 768: | ||
} | } | ||
} | } | ||
</nowiki></pre></del> | |||
* '''Final solution IfMobile extension. Which is total easy.''' |