iobroker.alias-workbench 0.10.0 → 0.12.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +58 -98
- package/admin/css/werkbank.css +88 -0
- package/admin/i18n/de.json +766 -1
- package/admin/i18n/en.json +766 -1
- package/admin/i18n/es.json +766 -1
- package/admin/i18n/fr.json +766 -1
- package/admin/i18n/it.json +766 -1
- package/admin/i18n/nl.json +766 -1
- package/admin/i18n/pl.json +766 -1
- package/admin/i18n/pt.json +766 -1
- package/admin/i18n/ru.json +766 -1
- package/admin/i18n/uk.json +766 -1
- package/admin/i18n/zh-cn.json +766 -1
- package/admin/js/ablage.js +118 -0
- package/admin/js/attrappe.js +749 -0
- package/admin/js/baum.js +52 -5
- package/admin/js/detail.js +64 -3
- package/admin/js/entwurf.js +246 -31
- package/admin/js/ergebnis.js +77 -2
- package/admin/js/katalog.js +235 -40
- package/admin/js/mqtt.js +297 -27
- package/admin/js/musternamen.js +70 -26
- package/admin/js/objekte.js +2 -0
- package/admin/js/quellentausch.js +823 -16
- package/admin/js/schreiben.js +3 -2
- package/admin/js/sprache.js +11 -8
- package/admin/js/vorlagen.js +8 -3
- package/admin/js/vorlagenblatt.js +228 -64
- package/admin/js/werte.js +294 -5
- package/admin/js/zielleiste.js +19 -10
- package/admin/js/zuordnung.js +8 -7
- package/admin/js/zustand.js +32 -0
- package/admin/js/zustandsliste.js +9 -2
- package/admin/tab.html +24 -0
- package/admin/vorlagen/hm-dimmer.json +32 -8
- package/admin/vorlagen/hm-fensterkontakt-hm.json +20 -5
- package/admin/vorlagen/hm-fensterkontakt-hmip.json +28 -7
- package/admin/vorlagen/hm-heizgruppe.json +38 -11
- package/admin/vorlagen/hm-heizkoerper.json +42 -12
- package/admin/vorlagen/hm-rollladen.json +28 -7
- package/admin/vorlagen/hm-schaltaktor-lampe.json +24 -6
- package/admin/vorlagen/hm-schaltaktor-mehrfach.json +32 -8
- package/admin/vorlagen/hm-schaltaktor-steckdose.json +24 -6
- package/admin/vorlagen/hm-temperatur-feuchte.json +8 -2
- package/admin/vorlagen/hm-wandthermostat.json +36 -9
- package/admin/vorlagen/messpunkt.json +40 -10
- package/admin/vorlagen/tasmota-lampe.json +48 -12
- package/admin/vorlagen/tasmota-mehrfach.json +40 -10
- package/admin/vorlagen/tasmota-rgb.json +36 -9
- package/admin/vorlagen/tasmota-steckdose.json +56 -14
- package/io-package.json +41 -28
- package/package.json +3 -3
- package/admin/sprachen/de.json +0 -685
- package/admin/sprachen/en.json +0 -685
package/admin/i18n/pt.json
CHANGED
|
@@ -10,5 +10,770 @@
|
|
|
10
10
|
"The Admin setup wizard leaves a bare name such as \"Playroom\" in the icon field, which no longer resolves to a picture and shows as a broken box. With this on, the workbench replaces it. It overwrites a field that is not empty — the dry run names it explicitly.": "O assistente de configuração do Admin deixa no campo do ícone um nome simples como «Playroom», que já não corresponde a nenhuma imagem e aparece como uma caixa partida. Com esta opção ligada, a bancada substitui-o. Isso sobrescreve um campo que não está vazio — a simulação indica-o explicitamente.",
|
|
11
11
|
"The Alias Workbench has no running process — everything happens in the Admin tab. These settings control how it writes.": "A Bancada de Alias não tem processo em execução — tudo acontece no separador do Admin. Estas definições determinam como escreve.",
|
|
12
12
|
"The workbench reads them at runtime from the Admin's own bundle instead of keeping a copy that would age with every update. If that fails, the selection lists simply show what already exists — no error, just fewer entries.": "A bancada lê-os em tempo de execução a partir do próprio pacote do Admin, em vez de manter uma cópia que envelheceria a cada atualização. Se isso falhar, as listas de seleção mostram apenas o que já existe — não é um erro, apenas menos entradas.",
|
|
13
|
-
"Where the templates come from": "De onde vêm os modelos"
|
|
13
|
+
"Where the templates come from": "De onde vêm os modelos",
|
|
14
|
+
"app.connected": "ligado",
|
|
15
|
+
"app.detector": "detetor de tipos",
|
|
16
|
+
"app.disconnected": "desligado",
|
|
17
|
+
"app.objectsCount": "{0} objetos",
|
|
18
|
+
"app.patternsCount": "{0} padrões",
|
|
19
|
+
"app.subsCount": "{0} assinaturas",
|
|
20
|
+
"app.subsCount1": "uma subscrição",
|
|
21
|
+
"app.subsHint": "Uma subscrição abrange todo um ramo, não um único valor — um padrão com um asterisco abrange todos os pontos abaixo dele. Ao mudar de nó, todos os anteriores deixam de estar subscritos; se o número continuar a crescer, algum fica para trás. A ver neste momento:",
|
|
22
|
+
"app.templatesCount": "{0} modelos",
|
|
23
|
+
"app.title": "Alias Workbench",
|
|
24
|
+
"catalog.loadingText": "Uma vez, após uma atualização do Admin — o pacote tem alguns megabytes. Depois disso, o catálogo fica armazenado e não será novamente descarregado.",
|
|
25
|
+
"catalog.loadingTitle": "Recuperar os modelos de administração",
|
|
26
|
+
"catalog.missing": "Catálogo de administração indisponível — apenas entradas existentes",
|
|
27
|
+
"check.allDeliver": "todos entregam",
|
|
28
|
+
"check.allFine": "está tudo bem",
|
|
29
|
+
"check.allOk": "{0} ✓",
|
|
30
|
+
"check.button": "Cheques",
|
|
31
|
+
"check.canSend": "{0}: as vias de gravação funcionam bem",
|
|
32
|
+
"check.cannotSend": "Não é possível enviar: {0}",
|
|
33
|
+
"check.checked": "{0} marcado",
|
|
34
|
+
"check.duplicate": "Não há pontos duplicados",
|
|
35
|
+
"check.duplicateNone": "cada um aponta para outro sítio",
|
|
36
|
+
"check.duplicateSome": "apontam para a mesma coisa: {0}",
|
|
37
|
+
"check.feedback": "o feedback chega imediatamente",
|
|
38
|
+
"check.feedbackFast": "de imediato, a opção SetOption59 fica ativada",
|
|
39
|
+
"check.feedbackNone": "nenhuma linha afetada — tudo lido a partir de stat/…",
|
|
40
|
+
"check.feedbackSlow": "atrasado: {0}",
|
|
41
|
+
"check.feedbackUnknown": "não marcado: {0}",
|
|
42
|
+
"check.formulaYields": "A fórmula «read» produz algum resultado",
|
|
43
|
+
"check.hintCount": "notas: {0}",
|
|
44
|
+
"check.noPatternFits": "nenhum padrão corresponde",
|
|
45
|
+
"check.noWritePath": "no point escreve",
|
|
46
|
+
"check.notMqtt": "sem caminho de gravação MQTT",
|
|
47
|
+
"check.openCount": "{0} vagas",
|
|
48
|
+
"check.publish": "publicar no ponto de comando",
|
|
49
|
+
"check.rolesMakeDevice": "as funções constituem um dispositivo",
|
|
50
|
+
"check.sendPointMissing": "enviar ponto de dados ainda não criado: {0}",
|
|
51
|
+
"check.sendUnknown": "O objeto não especifica se o «{0}» pode publicar — o tópico encontra-se apenas em «native». É normal para o ioBroker.mqtt e o Sonoff.",
|
|
52
|
+
"check.sourceExists": "a fonte existe",
|
|
53
|
+
"check.sourceHasValue": "a fonte tem um valor",
|
|
54
|
+
"check.targetCan": "O alvo consegue fazer o que lhe é pedido",
|
|
55
|
+
"check.targetCanFine": "está tudo bem",
|
|
56
|
+
"check.targetNoWrite": "{0}: o destino não é gravável",
|
|
57
|
+
"check.targetVoidFormula": "{0}: a execução da fórmula não produz nenhum resultado; o valor-alvo é {1}",
|
|
58
|
+
"check.title": "Verificações — sempre em execução, sem nunca tocar em nada",
|
|
59
|
+
"del.allOutputs": "Remover todas as saídas «{0}» deste dispositivo",
|
|
60
|
+
"del.allOutputsHint": "Caso contrário, o resto fica para trás, abandonado: {0}",
|
|
61
|
+
"del.alsoFunction": "A função «{0}», criada juntamente com este alias, é também removida — caso contrário, ficaria vazia.",
|
|
62
|
+
"del.alsoRoom": "A sala «{0}», criada juntamente com este pseudónimo, também é removida — caso contrário, ficaria vazia.",
|
|
63
|
+
"del.button": "Remover o alias …",
|
|
64
|
+
"del.channelsBelow": "Atenção: {0} canais próprios que se encontram abaixo destes também serão eliminados.",
|
|
65
|
+
"del.count": "serão removidos os seguintes objetos: {0}",
|
|
66
|
+
"del.done": "Removidos: {0} objetos.",
|
|
67
|
+
"del.hint": "O alias e todos os pontos de dados abaixo dele são eliminados. As fontes permanecem inalteradas — apenas o shell é eliminado, não o dispositivo. Esta ação não pode ser desfeita.",
|
|
68
|
+
"del.now": "Eliminar de vez",
|
|
69
|
+
"del.objects": "O que desaparece",
|
|
70
|
+
"del.scriptsHead": "{0} scripts mencionam este ID:",
|
|
71
|
+
"del.scriptsHead1": "Um script menciona este ID:",
|
|
72
|
+
"del.scriptsHint": "A pesquisa incidiu apenas nos scripts do adaptador JavaScript, em texto simples. As visualizações, as cenas e as definições de outros adaptadores não foram incluídas.",
|
|
73
|
+
"del.title": "Remover alias",
|
|
74
|
+
"detail.aliasEmpty": "O alias deixa este campo em branco.",
|
|
75
|
+
"detail.aliasHas": "O alias tem: ",
|
|
76
|
+
"detail.asDelivered": "tal como entregue",
|
|
77
|
+
"detail.attention": "Atenção",
|
|
78
|
+
"detail.buttonNoRead": "Botão sem fonte de leitura — não acompanha a leitura",
|
|
79
|
+
"detail.caption": "Legenda",
|
|
80
|
+
"detail.captionHint": "torna-se o nome de exibição do estado — apresentado na área de administração, no VIS e em qualquer lugar onde se utilizem nomes em vez de IDs",
|
|
81
|
+
"detail.converted": "convertido pelo alias",
|
|
82
|
+
"detail.datapoint": "Dado",
|
|
83
|
+
"detail.decimals": "Decimais",
|
|
84
|
+
"detail.display": "Ecrã",
|
|
85
|
+
"detail.elsewhere": "(noutro local)",
|
|
86
|
+
"detail.expects": "prevê {0}",
|
|
87
|
+
"detail.formula": "Ler fórmula",
|
|
88
|
+
"detail.formulaBroken": "a fórmula está errada",
|
|
89
|
+
"detail.formulaHint": "«ON»/«OFF» → o valor booleano é definido pelo próprio alias, não sendo necessária qualquer fórmula.",
|
|
90
|
+
"detail.formulaPlaceholder": "vazio = manter o valor inalterado",
|
|
91
|
+
"detail.formulaThrows": "erros de fórmula: {0}",
|
|
92
|
+
"detail.formulaTooSlow": "Esta fórmula demorou {0} ms e já não é executada. Ao recarregar o separador, é feita mais uma tentativa.",
|
|
93
|
+
"detail.jsonField": "Campo no JSON",
|
|
94
|
+
"detail.matchesState": "✓ corresponde ao estado",
|
|
95
|
+
"detail.name": "Nome",
|
|
96
|
+
"detail.namePlaceholder": "por exemplo, UNREACH",
|
|
97
|
+
"detail.nameTaken": "Já existe outra linha com o nome «{0}».",
|
|
98
|
+
"detail.noSource": "— fonte desconhecida —",
|
|
99
|
+
"detail.noValue": "sem valor",
|
|
100
|
+
"detail.noWrite": "— não escreva —",
|
|
101
|
+
"detail.notWritable": "não gravável",
|
|
102
|
+
"detail.objectId": "ID do objeto",
|
|
103
|
+
"detail.otherObject": "… introduza outro objeto",
|
|
104
|
+
"detail.ownFormula": "fórmula própria",
|
|
105
|
+
"detail.pickOne": "— por favor, escolha —",
|
|
106
|
+
"detail.rawNothing": "— a fonte não fornece nada —",
|
|
107
|
+
"detail.rawValue": "Valor bruto",
|
|
108
|
+
"detail.readIsButton": "botão",
|
|
109
|
+
"detail.readIsButtonHint": "Botão de função com um destino de escrita: o ponto de dados do alias recebe o valor «read: false», e o vis, a Alexa e o Matter apresentam-no como um botão. A fonte de leitura não causa qualquer problema — com ela, o alias deteta cada pressão, incluindo a que é feita no botão físico. Após uma pressão, o último valor mantém-se, tal como acontece na fonte.",
|
|
110
|
+
"detail.readOnlySlotWrites": "O {0} é de leitura única no padrão — «escreve em» deve ser substituído por «— não escrever —», caso contrário, o valor escrito é enviado para o dispositivo.",
|
|
111
|
+
"detail.readsFrom": "é lido a partir de",
|
|
112
|
+
"detail.removePoint": "Eliminar este ponto",
|
|
113
|
+
"detail.role": "Função",
|
|
114
|
+
"detail.sameAsRead": "— tal como se lê —",
|
|
115
|
+
"detail.separateHint": "Lê de um local diferente daquele em que escreve: o que é apresentado é o que o dispositivo devolve — e não o último comando enviado.",
|
|
116
|
+
"detail.slot": "Colocar no padrão",
|
|
117
|
+
"detail.slotHint": "Define a função, o tipo, a unidade e a lista de valores, conforme o padrão estabelece para este campo. O ponto de dados e o nome mantêm-se.",
|
|
118
|
+
"detail.slotNone": "— nenhum lugar —",
|
|
119
|
+
"detail.slotNotGiven": "O valor {0} é escolhido, mas não atribuído — consulte «Função» para saber o que não se enquadra (normalmente o tipo).",
|
|
120
|
+
"detail.slotRequired": "obrigatório",
|
|
121
|
+
"detail.sourceGone": "A fonte não existe",
|
|
122
|
+
"detail.stateSays": "o estado indica {0}",
|
|
123
|
+
"detail.states": "Lista de valores",
|
|
124
|
+
"detail.statesFromSource": "Retirar as {0} entradas da fonte",
|
|
125
|
+
"detail.statesHint": "converte números em texto — o administrador passa então a apresentar um menu suspenso em vez de um campo numérico, e alguns campos de padrão exigem isso. Deixe em branco se não houver lista de valores.",
|
|
126
|
+
"detail.statesPlaceholder": "um por linha: 0 = fechado",
|
|
127
|
+
"detail.takeFromAlias": "Recupere este valor do alias armazenado",
|
|
128
|
+
"detail.takeOne": "Retira este valor do modelo",
|
|
129
|
+
"detail.targetNoWrite": "O ponto de destino tem a propriedade «write: false» — o seu adaptador não transmite nada para o dispositivo. O ioBroker armazena o valor na mesma, mas nada acontecerá.",
|
|
130
|
+
"detail.targetTypeHint": "O ponto de destino é do tipo {0}. É ele que determina o que permanece da fórmula de escrita: os tipos «mixed» e «string» recebem o texto, enquanto os tipos «boolean» e «number» o convertem de volta.",
|
|
131
|
+
"detail.targetTypeVoid": "O alvo é {0} e não aceita texto. A fórmula de gravação produz texto — o js-controller converte-o de volta para {0} durante a gravação, pelo que a fórmula não tem qualquer efeito. A comutação continua a funcionar.",
|
|
132
|
+
"detail.tplWants": "O modelo requer: ",
|
|
133
|
+
"detail.tplWantsEmpty": "O modelo deixa este campo em branco.",
|
|
134
|
+
"detail.type": "Tipo",
|
|
135
|
+
"detail.typeNumber": "número",
|
|
136
|
+
"detail.unit": "Unidade",
|
|
137
|
+
"detail.writeFormula": "Escrever fórmula",
|
|
138
|
+
"detail.writeFormulaHint": "converte no sentido inverso: o que o dispositivo deve receber quando for ligado.",
|
|
139
|
+
"detail.writeFormulaPlaceholder": "por exemplo, val ? \"ON\" : \"OFF\"",
|
|
140
|
+
"detail.writesTo": "escreve a",
|
|
141
|
+
"detail.yields": "rendimentos",
|
|
142
|
+
"detail.yieldsNothing": "não dá em nada",
|
|
143
|
+
"diff.addedNoPlace": "marcado adicionalmente — não faz parte do {0}",
|
|
144
|
+
"diff.addedWithPlace": "marcado adicionalmente — parte do {0}",
|
|
145
|
+
"diff.againstStored": "em comparação com o que está armazenado",
|
|
146
|
+
"diff.changes": "Alterações",
|
|
147
|
+
"diff.deselectedNoPlace": "desmarcado — de qualquer forma, não teria feito parte do «{0}»",
|
|
148
|
+
"diff.deselectedWithPlace": "desmarcado — parte do {0}",
|
|
149
|
+
"diff.deviations": "Desvios em relação à proposta",
|
|
150
|
+
"diff.formulaChange": "leia a fórmula: {0} → {1}",
|
|
151
|
+
"diff.newByHand": "novo, adicionado manualmente",
|
|
152
|
+
"diff.noName": "(sem nome)",
|
|
153
|
+
"diff.nothingExists": "ainda não existe nada disso",
|
|
154
|
+
"diff.open": "{0} vagas",
|
|
155
|
+
"diff.points": "{0} pontos",
|
|
156
|
+
"diff.roleChange": "função: {0} → {1}",
|
|
157
|
+
"diff.sourceChange": "fonte: {0} → {1}",
|
|
158
|
+
"diff.unitChange": "unidade: {0} → {1}",
|
|
159
|
+
"diff.wouldBeAdded": "marcado — será adicionado aquando da atualização",
|
|
160
|
+
"diff.wouldBeRemoved": "desmarcado — existe no alias e seria removido",
|
|
161
|
+
"enums.addTo": "vai para dentro",
|
|
162
|
+
"enums.alsoFolder": "Devo guardar o alias também em «{0}»?",
|
|
163
|
+
"enums.clear": "remover atribuição",
|
|
164
|
+
"enums.function": "Função",
|
|
165
|
+
"enums.functionHint": "Atribui o alias a uma função, como iluminação ou aquecimento. Também é armazenado numa enumeração, e não no próprio objeto.",
|
|
166
|
+
"enums.iconAdded": "será adicionado um ícone",
|
|
167
|
+
"enums.iconNew": "Ainda não há imagem — a bancada irá adicioná-la durante a redação",
|
|
168
|
+
"enums.iconNewMark": "novo",
|
|
169
|
+
"enums.iconThere": "A imagem é guardada",
|
|
170
|
+
"enums.members": "{0} nisso",
|
|
171
|
+
"enums.newSuffix": "novo",
|
|
172
|
+
"enums.noMatch": "Não foi encontrado nada para «{0}»",
|
|
173
|
+
"enums.notLoadedField": "Não foi possível carregar as salas e as funções — por isso, a sala e a função não serão registadas; no entanto, o próprio alias é criado. O Workbench tenta novamente três vezes automaticamente; caso contrário, atualize o separador.",
|
|
174
|
+
"enums.nowEmpty": "fica vazio depois disso e será removido",
|
|
175
|
+
"enums.placeholder": "vazio = sem atribuição",
|
|
176
|
+
"enums.removeFrom": "é retirado",
|
|
177
|
+
"enums.room": "Quarto",
|
|
178
|
+
"enums.roomHint": "Atribui o alias a uma sala. Este não é armazenado no objeto, mas sim na enumeração «enum.rooms» — a Alexa, o Google e os painéis de controlo agrupam-se com base nela.",
|
|
179
|
+
"enums.suggested": "sugerido",
|
|
180
|
+
"enums.unknown": "Enumerações não carregadas — a sala e a função permanecem inalteradas.",
|
|
181
|
+
"enums.unused": "vazio",
|
|
182
|
+
"enums.willCreate": "criar novo",
|
|
183
|
+
"folder.aliasMissing": "em falta",
|
|
184
|
+
"folder.aliasThere": "existe",
|
|
185
|
+
"folder.clickHint": "Clique num dispositivo para trabalhar nele. ",
|
|
186
|
+
"folder.clickHintText": "Um nó é considerado um dispositivo assim que um modelo corresponder a ele — antes disso, não é efetuada qualquer pesquisa. Caso não haja correspondência, o nó continua a aparecer na lista assim que tiver os seus próprios pontos de dados.",
|
|
187
|
+
"folder.colAlias": "Alias",
|
|
188
|
+
"folder.colDetected": "detetado como",
|
|
189
|
+
"folder.colSource": "Fonte",
|
|
190
|
+
"folder.devices": "Dispositivos",
|
|
191
|
+
"folder.devicesBelow": "{0} dispositivos abaixo · {1} pontos de dados",
|
|
192
|
+
"folder.found": "Foram encontrados {0}",
|
|
193
|
+
"folder.nothingHere": "Não há aqui nada que possa vir a ser um dispositivo.",
|
|
194
|
+
"folder.withAlias": "{0} com alias",
|
|
195
|
+
"folder.withoutTemplate": "{0}, sem modelo",
|
|
196
|
+
"guess.alsoRow": "com sugestões: combina",
|
|
197
|
+
"guess.bar": "{0}s espaços preenchidos — por favor, verifique",
|
|
198
|
+
"guess.better": "O {0} talvez se adapte melhor",
|
|
199
|
+
"guess.betterGoHint": "Muda para {0} e carrega imediatamente em «{1}». Todas as atribuições passam então a aparecer como «adivinhadas» e têm de ser verificadas uma a uma; continua a ser possível descartar. Nada muda no dispositivo — apenas são definidas as funções no esboço.",
|
|
200
|
+
"guess.betterHint": "{0} resultaria em {1} vagas preenchidas, {2} apenas {3} — ambos os números após a sugestão. Mude para essa opção e, em seguida, prima «Sugerir vagas disponíveis»; é necessário verificar cada atribuição.",
|
|
201
|
+
"guess.betterHintNone": "{0} atingiria {1} vagas preenchidas após a sugestão; {2} não cabe, mesmo assim. Mude para essa opção e, em seguida, clique em «Sugerir vagas disponíveis»; é necessário verificar cada atribuição.",
|
|
202
|
+
"guess.button": "Sugerir slots grátis",
|
|
203
|
+
"guess.drop": "descartar",
|
|
204
|
+
"guess.hint": "Preenche os espaços em branco do padrão com os pontos de dados restantes — trata-se de uma tentativa, não de um conhecimento certo. As estimativas são feitas com base no nome, na lista de valores, na unidade e no tipo; cada atribuição é marcada como «estimada» e pode ser descartada uma a uma.",
|
|
205
|
+
"guess.keep": "manter",
|
|
206
|
+
"guess.keepAll": "guardar tudo",
|
|
207
|
+
"guess.locked": "{0} × tentativas, ainda indeciso — primeiro, decidir se mantém (✓) ou descarta (✕); só depois é que se pode desbloquear a criação e o guardamento.",
|
|
208
|
+
"guess.mark": "adivinhou",
|
|
209
|
+
"guess.noneFit": "{0} permanece livre. Nenhum dos dados restantes corresponde — a comparação é feita com base no nome, na lista de valores, na unidade e no tipo, e nenhum deles ultrapassou o limiar.",
|
|
210
|
+
"guess.noneFull": "Todos os espaços do padrão estão ocupados — já não há nada mais a sugerir.",
|
|
211
|
+
"guess.noneHand": "{0} linhas foram decididas manualmente e permanecem inalteradas: {1}.",
|
|
212
|
+
"guess.noneHandOne": "O {0} foi decidido manualmente e mantém-se inalterado.",
|
|
213
|
+
"guess.noneUsed": "{0} permanece livre. Cada ponto de dados restante já serve como fonte de leitura ou escrita numa linha preenchida.",
|
|
214
|
+
"guess.slotsMore": "{0} e mais {1}",
|
|
215
|
+
"guess.tplAsk": "Este dispositivo está identificado como «{0}», pelo que a atribuição já está definida. A sugestão preenche os campos adicionais com base nos restantes pontos de dados — trata-se de uma tentativa, não de um conhecimento certo, e cada correspondência teria de ser verificada. Destinado a casos especiais, por exemplo, quando o dispositivo tem capacidades que vão além do abrangido pelo modelo.",
|
|
216
|
+
"guess.tplGo": "Sugira na mesma",
|
|
217
|
+
"guess.tplHint": "O modelo já abrange este dispositivo — a sugestão aqui destina-se apenas a casos especiais.",
|
|
218
|
+
"guess.tplTitle": "Sugerir slots grátis, mesmo que seja um modelo?",
|
|
219
|
+
"guess.undo": "Ignorar sugestões",
|
|
220
|
+
"help.aliases": "Escolha um alias existente à esquerda. Remova pontos, altere funções, fontes e fórmulas — ou mova-o, renomeie-o e elimine-o.",
|
|
221
|
+
"help.aliasesAdd": "Para adicionar pontos a um alias, é mais fácil utilizar o caminho «para a fonte →» (canto superior direito, ao lado do nome do alias): o modelo aplica-se nessa situação e cada ponto de dados do dispositivo é apresentado com uma função já definida — aqui, teria de introduzir cada um manualmente.",
|
|
222
|
+
"help.sources": "Escolha um dispositivo ou canal à esquerda. O ambiente de trabalho reconhece o que é e sugere um alias já pronto. Se já existir um, este é atualizado.",
|
|
223
|
+
"help.templates": "Escolha um modelo à esquerda. Os modelos incluídos no pacote podem ser visualizados e duplicados; os seus próprios modelos podem ser editados. A versão de teste mostra com que dispositivos é compatível.",
|
|
224
|
+
"info.dlgTitle": "Não faz parte do padrão «{0}»",
|
|
225
|
+
"info.explain": "funcionam perfeitamente normalmente e permanecem onde foram criados. Não é gravado nada adicional — o alias permanece tal como está. Simplesmente não fazem parte do que o ioBroker considera um «{0}»; a sua função não se enquadra em nenhum dos seus slots. Só começa a ter importância quando se passa o alias para a Alexa, o Google Home ou a interface de utilizador de um dispositivo: estes irão ver um «{0}» sem esses pontos. No VIS, nos scripts e no histórico, utiliza-os como qualquer outro ponto de dados.",
|
|
226
|
+
"info.more": "O que isto significa",
|
|
227
|
+
"leave.body": "Existem alterações na versão {0} que ainda não foram gravadas. Se mudar agora, essas alterações serão descartadas.",
|
|
228
|
+
"leave.discard": "Deitar fora e trocar",
|
|
229
|
+
"leave.stay": "Fica aqui",
|
|
230
|
+
"leave.title": "Alterações não guardadas",
|
|
231
|
+
"list.addByHand": "Adicionar um ponto de dados manualmente",
|
|
232
|
+
"list.aliasDiffers": "difere do alias guardado",
|
|
233
|
+
"list.all": "todos",
|
|
234
|
+
"list.buttonOnly": "apenas gravação",
|
|
235
|
+
"list.byHand": "à mão",
|
|
236
|
+
"list.changed": "alterado",
|
|
237
|
+
"list.colOn": "em",
|
|
238
|
+
"list.colRole": "Função",
|
|
239
|
+
"list.colState": "Estado",
|
|
240
|
+
"list.colValue": "Valor",
|
|
241
|
+
"list.countOf": "{0} de {1}",
|
|
242
|
+
"list.createAria": "criar {0}",
|
|
243
|
+
"list.nameMissing": "falta o nome",
|
|
244
|
+
"list.newPoint": "novo ponto",
|
|
245
|
+
"list.noRole": "— sem função —",
|
|
246
|
+
"list.ofDatapoints": "pontos de dados",
|
|
247
|
+
"list.onlyPattern": "apenas o que se enquadra no padrão",
|
|
248
|
+
"list.onlyPatternHint": "Marca exatamente os pontos que ocupam um espaço no padrão escolhido — tudo o resto fica desmarcado e não é criado.",
|
|
249
|
+
"list.onlyWithValue": "apenas com um valor",
|
|
250
|
+
"list.otherSource": "de {0}",
|
|
251
|
+
"list.otherSourceHint": "Este ponto não começa em {0}, mas sim em {1}.",
|
|
252
|
+
"list.reset": "reiniciar",
|
|
253
|
+
"list.resetHint": "Anula todas as alterações aqui efetuadas — caixas de seleção, funções, fórmulas, fontes — e volta a apresentar o estado tal como estava guardado.",
|
|
254
|
+
"list.sendPointMissing": "enviar ponto de dados ainda não criado",
|
|
255
|
+
"list.sourceGone": "A fonte não existe",
|
|
256
|
+
"list.sourceHint": "Este ponto começa em {0}.",
|
|
257
|
+
"list.sourceMissing": "fonte em falta",
|
|
258
|
+
"list.tpl": "modelo",
|
|
259
|
+
"list.tplDiffers": "difere do modelo",
|
|
260
|
+
"list.tplHint": "Verifica exatamente os pontos que o modelo propõe — independentemente do que o alias contenha atualmente.",
|
|
261
|
+
"list.willBeCreated": "será criado:",
|
|
262
|
+
"mock.colName": "Nome",
|
|
263
|
+
"mock.colPath": "Caminho",
|
|
264
|
+
"mock.colRole": "Função",
|
|
265
|
+
"mock.colType": "Tipo",
|
|
266
|
+
"mock.colValue": "Valor",
|
|
267
|
+
"mock.counts": "{0} entradas, {1} com valor · escrito por alias-workbench {2} · origem {3}",
|
|
268
|
+
"mock.inNames": "Atenção: {0} identificadores estão também no caminho ou nos nomes — omitir `native` não os remove",
|
|
269
|
+
"mock.more": "… e mais {0} entradas (não mostradas, mas vão para o ficheiro)",
|
|
270
|
+
"mock.noNative": "`native` não está incluído. Desmarque os valores que não quer partilhar.",
|
|
271
|
+
"mock.save": "Guardar ficheiro",
|
|
272
|
+
"mock.suspicious": "Parece: {0}",
|
|
273
|
+
"mock.tooBig": "Isso é muito: {0} entradas (um dispositivo costuma ter menos de {1})",
|
|
274
|
+
"mock.tooBigHint": "Queria um único dispositivo? A exportação funciona na mesma.",
|
|
275
|
+
"mockin.bad": "Este ficheiro não serve",
|
|
276
|
+
"mockin.badEntry": "{0} entradas não têm caminho.",
|
|
277
|
+
"mockin.badFormat": "Formato {0}, mas esta versão lê {1}.",
|
|
278
|
+
"mockin.badJson": "Não é legível como JSON.",
|
|
279
|
+
"mockin.badObjects": "Sem objetos no ficheiro.",
|
|
280
|
+
"mockin.counts": "{0} objetos, {1} com valor, {2} já existem",
|
|
281
|
+
"mockin.create": "Criar agora",
|
|
282
|
+
"mockin.exists": "(já existe)",
|
|
283
|
+
"mockin.from": "De {0} · escrito por alias-workbench {1} · origem {2}",
|
|
284
|
+
"mockin.name": "Nome",
|
|
285
|
+
"mockin.nameTaken": "O nome «{0}» já existe — estão lá {1} objetos",
|
|
286
|
+
"mockin.nameTakenHint": "Escolha outro nome. Escrever num dispositivo fictício existente misturaria os dois: só os caminhos coincidentes são substituídos, o resto do antigo fica — e resultaria um dispositivo que nunca existiu.",
|
|
287
|
+
"mockin.noRoot": "Falta a entrada da raiz.",
|
|
288
|
+
"move.button": "Avançar …",
|
|
289
|
+
"move.done": "Movido. O alias está agora em {0}.",
|
|
290
|
+
"move.exists": "{0} já existe. Elimine-o primeiro ou escolha outro nome.",
|
|
291
|
+
"move.from": "de",
|
|
292
|
+
"move.needName": "É necessário introduzir um nome.",
|
|
293
|
+
"move.nested": "O alvo encontra-se abaixo do próprio alias (ou vice-versa). Se o mover, irá eliminar o seu próprio nó pai — por favor, escolha um local ao lado deste.",
|
|
294
|
+
"move.newFolder": "nova pasta",
|
|
295
|
+
"move.noFolder": "(sem pasta — diretamente na pasta alias.0)",
|
|
296
|
+
"move.noScripts": "O ID não aparece em nenhum script.",
|
|
297
|
+
"move.now": "Aja agora",
|
|
298
|
+
"move.scriptLines": "linha {0}",
|
|
299
|
+
"move.scriptLinesN": "linhas {0}",
|
|
300
|
+
"move.scriptOff": "desativado",
|
|
301
|
+
"move.scriptsHead": "{0} scripts mencionam o ID antigo:",
|
|
302
|
+
"move.scriptsHead1": "Um script menciona o antigo ID:",
|
|
303
|
+
"move.title": "Mover alias",
|
|
304
|
+
"move.to": "para",
|
|
305
|
+
"move.unchanged": "A pasta e o nome permanecem inalterados — não há nada a fazer.",
|
|
306
|
+
"move.warnHistory": "Apenas a configuração que indica que o registo está ativado é transferida. A partir de agora, inicia-se uma nova série vazia com o novo ID. Tudo o que foi registado até agora permanece na base de dados com o ID antigo — não se perde, mas já não será ampliado. Os gráficos e as consultas do Grafana que apontam para o ID antigo não recebem nada de novo; se apontarem para o novo, não terão o histórico.",
|
|
307
|
+
"move.warnHistoryHead": "Os valores registados não se alteram.",
|
|
308
|
+
"move.warnRefs": "No que diz respeito às visualizações, os nomes do Alexa e do Google e outros adaptadores não podem ser verificados. Tudo o que aponte para o ID antigo deve ser ajustado manualmente.",
|
|
309
|
+
"move.warnRefsHead": "O que mais está associado ao antigo número de identificação?",
|
|
310
|
+
"move.willMove": "será transferido",
|
|
311
|
+
"move.with": "com",
|
|
312
|
+
"mq.andMore": "… e mais {0}",
|
|
313
|
+
"mq.ask": "Pergunta ao dispositivo",
|
|
314
|
+
"mq.askError": "A consulta falhou: {0}",
|
|
315
|
+
"mq.askGotAnswer": "O dispositivo respondeu — comandos encontrados: {0}",
|
|
316
|
+
"mq.askHint": "Esta é uma consulta simples — não altera nada nem modifica nenhuma configuração.",
|
|
317
|
+
"mq.askNoAnswer": "Sem resposta. Ou o dispositivo está offline, ou está a escutar num tópico diferente.",
|
|
318
|
+
"mq.askOffline": "O dispositivo não está a comunicar neste momento — uma solicitação ficará, portanto, sem resposta.",
|
|
319
|
+
"mq.askedDays": "perguntado há {0} dias",
|
|
320
|
+
"mq.askedHours": "perguntado há {0} horas",
|
|
321
|
+
"mq.askedMinutes": "perguntado há {0} minutos",
|
|
322
|
+
"mq.asking": "perguntar ao dispositivo",
|
|
323
|
+
"mq.commandsFrom": "Comandos, a partir de {0}",
|
|
324
|
+
"mq.createdBy": "criado pelo Alias Workbench",
|
|
325
|
+
"mq.dialogTitle": "Criar pontos de envio",
|
|
326
|
+
"mq.done": "{0} objetos gravados.",
|
|
327
|
+
"mq.doneHint": "A deteção vai recomeçar daqui a pouco — um modelo que antes não correspondia pode corresponder agora.",
|
|
328
|
+
"mq.duplicate": "é igual a {0}",
|
|
329
|
+
"mq.fix": "Criar pontos de envio …",
|
|
330
|
+
"mq.instant": "Feedback imediato",
|
|
331
|
+
"mq.instantCheck": "perguntar",
|
|
332
|
+
"mq.instantChecking": "perguntando",
|
|
333
|
+
"mq.instantEnable": "Ativar",
|
|
334
|
+
"mq.instantEnabling": "ativar",
|
|
335
|
+
"mq.instantHintOff": "Sem a SetOption59, o dispositivo apenas transmite dados no seu ciclo de telemetria. O valor {0} é lido a partir de tele/… e continua a apresentar o valor antigo após a mudança até esse momento. A sua ativação constitui uma configuração permanente do dispositivo — não altera nada e apenas modifica a frequência com que o dispositivo transmite dados.",
|
|
336
|
+
"mq.instantHintOffTakt": "Sem a SetOption59, o dispositivo apenas envia dados a cada {1} segundos. São {0} leituras do tele/… e, até então, continua a apresentar o valor antigo após a mudança. A sua ativação é uma configuração permanente do dispositivo — não altera nada e apenas modifica a frequência com que o dispositivo envia dados.",
|
|
337
|
+
"mq.instantHintOn": "A opção SetOption59 está definida: o dispositivo comunica todas as alterações de uma só vez, e não apenas na telemetria seguinte. Medido em três segundos.",
|
|
338
|
+
"mq.instantHintUnknown": "Ainda não foi feita nenhuma solicitação ao dispositivo. A função «Ask» envia uma consulta vazia para o SetOption59 — não altera nada.",
|
|
339
|
+
"mq.instantOff": "desligado",
|
|
340
|
+
"mq.instantOffShort": "atraso na resposta",
|
|
341
|
+
"mq.instantOn": "ativado",
|
|
342
|
+
"mq.instantUnknown": "desconhecido",
|
|
343
|
+
"mq.intro": "Nem todos os Tasmota estão configurados da mesma forma. A ausência de um ponto ou um ponto em silêncio não constitui, por si só, uma falha — só é relevante quando um alias deve passar por ele ou quando um modelo precisa dele para a deteção.",
|
|
344
|
+
"mq.justAsked": "perguntou há pouco",
|
|
345
|
+
"mq.missing": "Faltam {0} pontos de envio",
|
|
346
|
+
"mq.missingIp": "O endereço IP do dispositivo é desconhecido — só aparece em tele/INFO2 (enviado uma vez no arranque) ou em stat/STATUS5 (apenas mediante pedido).",
|
|
347
|
+
"mq.missingPeriod": "O período de telemetria é desconhecido — o dispositivo nunca o comunica por iniciativa própria, apenas quando solicitado.",
|
|
348
|
+
"mq.mute": "{0} não é possível enviar",
|
|
349
|
+
"mq.neverReported": "O dispositivo não tem transmitido todos os dados desde que foi ligado, pelo que a sua lista de comandos é desconhecida.",
|
|
350
|
+
"mq.newPoints": "A criar",
|
|
351
|
+
"mq.nothingYet": "O dispositivo ainda não enviou nada a partir do qual fosse possível ler comandos.",
|
|
352
|
+
"mq.nowValue": "atualmente:",
|
|
353
|
+
"mq.offline": "offline",
|
|
354
|
+
"mq.onlyResult": "Até agora, só chegou a resposta a um único comando, e não o estado completo — a lista pode estar incompleta.",
|
|
355
|
+
"mq.repair": "Presente, mas em silêncio",
|
|
356
|
+
"mq.repairHint": "Estes pontos existem, mas não é permitido enviar dados através deles. Uma mudança de alias que passe por eles não tem qualquer efeito, e isso não se nota de forma alguma.",
|
|
357
|
+
"mq.rowAllow": "permitir o envio",
|
|
358
|
+
"mq.rowCreate": "criar",
|
|
359
|
+
"mq.rowWorking": "…",
|
|
360
|
+
"mq.selectedOf": "{0} de {1} selecionado",
|
|
361
|
+
"mq.silent": "não comunicar",
|
|
362
|
+
"mq.split": "de {0} ramos",
|
|
363
|
+
"mq.splitHint": "Este dispositivo não se encontra sob um único nó, mas está distribuído por {0} ramos — é assim que o adaptador MQTT o armazena quando o FullTopic do dispositivo é «%prefix%/%topic%/» (configuração de fábrica do Tasmota). O Workbench trata as ramificações como um único dispositivo; os pontos são criados abaixo do dispositivo, e não ao lado dele.",
|
|
364
|
+
"mq.stFine": "presente, envia",
|
|
365
|
+
"mq.stMissing": "falta um ponto",
|
|
366
|
+
"mq.stMute": "não consigo enviar",
|
|
367
|
+
"mq.stOff": "ligado, mas desligado",
|
|
368
|
+
"mq.stUnknown": "presente, envio desconhecido",
|
|
369
|
+
"mq.title": "Dispositivo MQTT",
|
|
370
|
+
"mq.unknownCommand": "comando desconhecido",
|
|
371
|
+
"mq.write": "Criar ({0})",
|
|
372
|
+
"pattern.allPatterns": "todos os {0} padrões",
|
|
373
|
+
"pattern.doesNotFit": "✕ não serve",
|
|
374
|
+
"pattern.expectsType": ", espera {0}",
|
|
375
|
+
"pattern.fitsNotType": "✕ {0}: digite {1} em vez de {2}",
|
|
376
|
+
"pattern.fitsOn": "partidas ",
|
|
377
|
+
"pattern.freeSlots": "Slots livres no padrão «{0}»",
|
|
378
|
+
"pattern.label": "Padrão",
|
|
379
|
+
"pattern.manualInstead": "manualmente, em vez de {0}",
|
|
380
|
+
"pattern.missing": "{0} em falta",
|
|
381
|
+
"pattern.noMatch": "nenhum padrão corresponde a «{0}»",
|
|
382
|
+
"pattern.noPlaceBecauseType": "O padrão «{0}» não se aplica neste momento: o {1} requer o {2}, mas o {3} está definido. É por isso que nenhuma linha tem um espaço disponível.",
|
|
383
|
+
"pattern.noPlaceLegend": "As linhas sombreadas desta forma não têm qualquer posição no padrão «{0}»",
|
|
384
|
+
"pattern.noPlaceLong": "não há espaço no padrão «{0}» — o ponto é mesmo assim criado e totalmente utilizável, só que a Alexa e os seus amigos o contam separadamente",
|
|
385
|
+
"pattern.notDetected": "não detetado",
|
|
386
|
+
"pattern.offCandidate": "{0} corresponde a {1}, mas não está assinalado.",
|
|
387
|
+
"pattern.offCandidateType": "O {0} corresponde ao {1} em termos da sua função, mas não está assinalado e tem o tipo {2} em vez de {3}.",
|
|
388
|
+
"pattern.offGuess": "Com «{0}», isso seria aplicável.",
|
|
389
|
+
"pattern.offMissing": "O padrão «{0}» não se aplica neste momento: falta o «{1}». É por isso que nenhuma linha tem um espaço disponível.",
|
|
390
|
+
"pattern.orRole": "ou {0}",
|
|
391
|
+
"pattern.pointsTaken": "✓ {0} pontos",
|
|
392
|
+
"pattern.required": "OBRIGATÓRIO — em falta",
|
|
393
|
+
"pattern.search": "escreva para pesquisar …",
|
|
394
|
+
"pattern.slotHeldBy": "O {1} já contém {0} — desta forma, esta linha não tem onde ser colocada. Escolha um espaço livre na secção «Colocar no padrão», acima.",
|
|
395
|
+
"pattern.slotName": "Este ponto encontra-se na ranhura «{0}» do padrão {1}. Os nomes das ranhuras provêm do detetor de tipos e são os mesmos em todo o lado — não são traduzidos, porque o ponto de dados «alias» tem exatamente esse nome.",
|
|
396
|
+
"pattern.slotsTaken": "✓ {0}/{1} preenchido",
|
|
397
|
+
"pattern.tickIt": "marca essa opção",
|
|
398
|
+
"pattern.tickItType": "marca esta opção, {0}",
|
|
399
|
+
"pattern.toSlot": " → posição {0} no padrão {1}",
|
|
400
|
+
"pattern.typeMismatch": "A ranhura {0} requer o valor {1}, mas está definido como {2} — o estado sai do padrão, apesar de a função estar correta.",
|
|
401
|
+
"pattern.typeOr": " ou ",
|
|
402
|
+
"pattern.usualOnly": "apenas os habituais",
|
|
403
|
+
"pattern.viaRole": "função {0}",
|
|
404
|
+
"result.addNeighbours": "Juntar ramos vizinhos ({0})",
|
|
405
|
+
"result.addNeighboursHint": "Alguns adaptadores dividem um aparelho por ramos vizinhos. Isto junta todos; para escolher ramos isolados use Ctrl+clique na árvore.",
|
|
406
|
+
"result.addNeighboursSame": "Segundo o adaptador, estes ramos pertencem a um aparelho — mesmo id de nó e mesmo ponto de ligação. Isto junta todos; para ramos isolados use Ctrl+clique.",
|
|
407
|
+
"result.allAnyway": "De qualquer forma, tudo ",
|
|
408
|
+
"result.channelsHint": "Este dispositivo tem {0} canais. Escolha abaixo: tudo numa única pasta, ou espelhar a estrutura da fonte — uma pasta para o dispositivo, com um canal por baixo de cada uma.",
|
|
409
|
+
"result.extraSwitches": "Incluídos: {0} pontos de outros canais para os quais o padrão {1} não dispõe de espaço. Estes são criados, mas não contam como interruptor ou feedback do dispositivo. Para um controlo separado, utilize a opção «um dispositivo por canal» abaixo.",
|
|
410
|
+
"result.header": "O que o detetor de tipos conclui a esse respeito",
|
|
411
|
+
"result.newlyCreated": "será criado",
|
|
412
|
+
"result.noObjectShort": "sem objeto",
|
|
413
|
+
"result.pickSource": "Saltar para onde?",
|
|
414
|
+
"result.pointsFromBranches": "{0} pontos de dados de {1} ramos. ",
|
|
415
|
+
"result.sourceCount": "{0} fontes",
|
|
416
|
+
"result.sourceCountHint": "Os itens deste alias são lidos a partir de mais do que um nó. «Para a fonte» leva ao nó de onde a maioria deles provém; um clique mostra todos eles.",
|
|
417
|
+
"result.sourceGone": "A fonte {0} já não existe.",
|
|
418
|
+
"result.sourceGone1": "1 ponto não aponta para lado nenhum",
|
|
419
|
+
"result.sourceGoneN": "{0} pontos não levam a lado nenhum",
|
|
420
|
+
"result.states": "{0} estados",
|
|
421
|
+
"result.statesDirect": "{0} estados ({1} diretamente)",
|
|
422
|
+
"result.toAlias": "para o pseudónimo",
|
|
423
|
+
"result.toAliasHint": "Salta para o alias criado a partir deste dispositivo.",
|
|
424
|
+
"result.toSource": "para a fonte",
|
|
425
|
+
"result.toSourceHint": "Salta para o dispositivo a partir do qual este alias foi criado. Os modelos só se aplicam nesse dispositivo — no modo de alias, é possível atualizar um alias, mas não recriá-lo a partir de um modelo.",
|
|
426
|
+
"result.tooManyStates": "Isso corresponderia a um dispositivo com {0} estado — normalmente, isso significa que foi selecionado o nó errado. Na árvore à esquerda, os nós que se assemelham a um único dispositivo estão assinalados com um ponto. Ainda assim, é possível construí-la desta forma.",
|
|
427
|
+
"roles.leadsTo": "→ ranhura {0}",
|
|
428
|
+
"roles.noMatch": "não há correspondência para «{0}»",
|
|
429
|
+
"roles.patternOnly": "mostrar apenas as funções do padrão",
|
|
430
|
+
"roles.search": "procurar função …",
|
|
431
|
+
"roles.showAll": "mostrar todas as {0} funções",
|
|
432
|
+
"roles.slot": "espaço {0} no padrão {1}",
|
|
433
|
+
"roles.slotFree": "grátis",
|
|
434
|
+
"roles.slotTaken": "tirada por {0}",
|
|
435
|
+
"swap.blocked": "Decida primeiro — estes pontos não podem coexistir: {0}. Ou os remove durante a troca ou mantém a troca tal como está; um ponto destinado à gravação precisa de um destino de gravação.",
|
|
436
|
+
"swap.button": "Trocar fonte …",
|
|
437
|
+
"swap.byHandCheck": "Fórmula, unidade e intervalo ficam como estão no alias — verifique-os depois.",
|
|
438
|
+
"swap.byHandHint": "Indicou este ponto você mesmo — a bancada não o conseguiu deduzir do novo aparelho.",
|
|
439
|
+
"swap.byHandMark": "à mão",
|
|
440
|
+
"swap.diffRange": "intervalo {0} → {1}",
|
|
441
|
+
"swap.diffType": "tipo {0} → {1}",
|
|
442
|
+
"swap.diffUnit": "unidade {0} → {1}",
|
|
443
|
+
"swap.done": "Invertido. O alias começa agora a contar a partir de {0}.",
|
|
444
|
+
"swap.factorField": "Fator",
|
|
445
|
+
"swap.formula": "Fórmula",
|
|
446
|
+
"swap.formulaNone": "nenhuma",
|
|
447
|
+
"swap.from": "Atualmente, a leitura é feita a partir de:",
|
|
448
|
+
"swap.fromAlias": "Mapeado pelo próprio ponto do alias: sob a nova origem existe exatamente um ponto chamado «{0}» com o papel «{1}».",
|
|
449
|
+
"swap.fromAliasMark": "do alias",
|
|
450
|
+
"swap.fromDetect": "Mapeado como ao clicar no aparelho na árvore: a nova origem rotula os seus pontos e o detetor reconhece ali «{0}».",
|
|
451
|
+
"swap.fromDetectMark": "reconhecido",
|
|
452
|
+
"swap.fromTpl": "Mapeado como ao clicar no aparelho na árvore: o modelo «{0}» serve para a nova origem e sabe que ponto pertence a este lugar — fórmula incluída.",
|
|
453
|
+
"swap.fromTplMark": "do modelo",
|
|
454
|
+
"swap.goHigher": "utilize o nível superior",
|
|
455
|
+
"swap.gone": "Este dispositivo já não existe — e é precisamente para isso que isto serve.",
|
|
456
|
+
"swap.guessHint": "As linhas marcadas como «estimadas» foram correspondidas por nome ou função — por favor, verifique-as individualmente.",
|
|
457
|
+
"swap.guessedByAliasRole": "Adivinhado pelo papel do ponto do alias: sob a nova origem exatamente um ponto tem o papel «{0}». Por favor verifique.",
|
|
458
|
+
"swap.guessedByName": "A julgar pelo nome do ponto: algo na nova fonte também se chama «{0}». Isso pode estar muito longe — por favor, verifica.",
|
|
459
|
+
"swap.guessedByRole": "Concluí a partir da função: um ponto na nova fonte tem a mesma função «{0}». Por favor, verifique.",
|
|
460
|
+
"swap.higherLevel": "Um nível acima ({0}) encontra um alvo para {1} de {2} pontos; aqui, apenas {3}.",
|
|
461
|
+
"swap.keeps": "O alias mantém o seu ID, nomes, funções e fórmulas, o seu histórico na base de dados, bem como a sua sala e função. A única diferença reside no local de onde cada ponto lê e para onde escreve.",
|
|
462
|
+
"swap.loadingValues": "A ler o novo aparelho …",
|
|
463
|
+
"swap.mapping": "Mapeamento",
|
|
464
|
+
"swap.mind": "Cuidado:",
|
|
465
|
+
"swap.mindHint": "As fórmulas dos alias permanecem inalteradas — se a nova fonte tiver uma escala diferente, os valores ficarão errados posteriormente. A fórmula encontra-se na linha de detalhes do ponto.",
|
|
466
|
+
"swap.noDevice": "Não foi encontrado nenhum dispositivo.",
|
|
467
|
+
"swap.noMatch": "não foi encontrado nenhum ponto correspondente",
|
|
468
|
+
"swap.noWriteMatch": "Não foi encontrado nenhum destino de gravação — este ponto não será gravado em lado nenhum",
|
|
469
|
+
"swap.now": "Trocar agora",
|
|
470
|
+
"swap.pickByHand": "… ou escolha um ponto você mesmo",
|
|
471
|
+
"swap.pickFirst": "Escolhe primeiro uma nova fonte.",
|
|
472
|
+
"swap.removeIt": "remover este ponto durante a troca",
|
|
473
|
+
"swap.same": "É a mesma fonte de antes.",
|
|
474
|
+
"swap.search": "Pesquisar (ID ou nome) …",
|
|
475
|
+
"swap.suggestionHint": "Uma sugestão vinda da rotulagem — clique para a colocar no campo. Confira com os dois valores acima: o rótulo pode estar errado.",
|
|
476
|
+
"swap.title": "Fonte do swap",
|
|
477
|
+
"swap.to": "Nova fonte",
|
|
478
|
+
"swap.tplDrop": "Remover também o modelo memorizado ({0} objetos)",
|
|
479
|
+
"swap.tplFormulas": "As fórmulas de {0} pontos são de qualquer forma substituídas pelas do novo aparelho — pertencem à origem, não ao alias. Cada linha mostra o que ficará lá.",
|
|
480
|
+
"swap.tplGone": "Este modelo já não existe.",
|
|
481
|
+
"swap.tplOther": "Há outro modelo que serve para a nova origem: «{0}». Pode aplicá-lo após a troca na seleção de modelos — traz as suas próprias fórmulas e nomes.",
|
|
482
|
+
"swap.tplStale": "O modelo memorizado «{0}» não serve para a nova origem",
|
|
483
|
+
"swap.unchanged": "inalterado",
|
|
484
|
+
"swap.unitChanged": "Unidade: no alias {0} · nova origem: {1}",
|
|
485
|
+
"swap.unitField": "Unidade no alias",
|
|
486
|
+
"swap.unitHistWarn": "Há um registo ligado a este ponto. O histórico está na unidade antiga — uma série que muda de fator a meio não se consegue reparar.",
|
|
487
|
+
"swap.unitNoFactor": "Sem conversão: estas duas unidades não formam um par conhecido.",
|
|
488
|
+
"swap.unitNone": "nenhuma",
|
|
489
|
+
"swap.unitResult": "Resultado: {0} {1}",
|
|
490
|
+
"swap.unitValOld": "O seu alias mostra hoje: {0} {1}",
|
|
491
|
+
"swap.unknown": "(não é possível determinar)",
|
|
492
|
+
"target.alsoRoom": "Também definir o parâmetro «room» como «{0}»?",
|
|
493
|
+
"target.alsoRoomNew": "Não existe a sala «{0}» — devemos criá-la e atribuí-la?",
|
|
494
|
+
"target.clearField": "limpar campo",
|
|
495
|
+
"target.exists": "já existe",
|
|
496
|
+
"target.folder": "Coloque debaixo de",
|
|
497
|
+
"target.folderHint": "separar as subpastas com um ponto, por exemplo: Casa.GF.Cozinha",
|
|
498
|
+
"target.folderPlaceholder": "vazio = diretamente abaixo de alias.0",
|
|
499
|
+
"target.moveInstead": "em vez disso, move-o…",
|
|
500
|
+
"target.moveInsteadHint": "Mude o alias existente para o novo ID, em vez de criar um segundo ao lado deste.",
|
|
501
|
+
"target.name": "Nome",
|
|
502
|
+
"target.openFolder": "abrir «{0}»",
|
|
503
|
+
"target.twinExists": "Esta fonte já tem um{0} — essa fica onde está.",
|
|
504
|
+
"target.yes": "sim",
|
|
505
|
+
"tpl.applyTemplate": "utilizar os valores do modelo ({0})",
|
|
506
|
+
"tpl.applyTemplateHint": "Define as funções, os tipos, as unidades, as fórmulas e as fontes de acordo com o que está indicado no modelo. A legenda mantém-se tal como está — essa é da tua autoria. Nada é escrito antes do teste.",
|
|
507
|
+
"tpl.choose": "— escolher modelo —",
|
|
508
|
+
"tpl.contains": "{0} contém {1}",
|
|
509
|
+
"tpl.fits": "adequa-se",
|
|
510
|
+
"tpl.fitsNot": "✕ {0}",
|
|
511
|
+
"tpl.forbiddenThere": "O {0} existe, mas não deve",
|
|
512
|
+
"tpl.forced": "forçado",
|
|
513
|
+
"tpl.forcedHint": "A deteção não é acionada para este modelo — selecionado manualmente.",
|
|
514
|
+
"tpl.identifiedAs": "Identificado como: {0}",
|
|
515
|
+
"tpl.label": "Modelo",
|
|
516
|
+
"tpl.manuallyChosen": "escolhidos à mão",
|
|
517
|
+
"tpl.missingPoint": "{0} em falta",
|
|
518
|
+
"tpl.nameHint": "o nome corresponde a «{0}» — não detetável a partir do MQTT",
|
|
519
|
+
"tpl.noJson": "{0} não devolve nenhum JSON",
|
|
520
|
+
"tpl.noNameHint": "o nome não dá qualquer pista — «{0}» é o valor predefinido; no MQTT, são indistinguíveis",
|
|
521
|
+
"tpl.noOutputs": "não foram encontradas saídas",
|
|
522
|
+
"tpl.none": "— sem modelo —",
|
|
523
|
+
"tpl.noneDetected": "Não foi detetado nenhum modelo",
|
|
524
|
+
"tpl.nor": " nem em ",
|
|
525
|
+
"tpl.output": "Resultado",
|
|
526
|
+
"tpl.outputsFound": "resultados encontrados: {0}",
|
|
527
|
+
"tpl.own": "próprio",
|
|
528
|
+
"tpl.possibleIn": "{0} é um comando que o dispositivo reconhece (o ponto de dados ainda não foi criado)",
|
|
529
|
+
"tpl.presentIn": "{0} presente",
|
|
530
|
+
"tpl.remembered": "lembrado",
|
|
531
|
+
"tpl.rememberedHint": "Este alias foi criado a partir deste modelo — mantém-se até que o altere deliberadamente.",
|
|
532
|
+
"tpl.showAllPoints": "Carregar todos os pontos de dados do dispositivo",
|
|
533
|
+
"tpl.showAllPointsHelp": "Apresenta a proposta de modelo e enumera todos os pontos de dados que o dispositivo possui, incluindo aqueles que nenhum modelo menciona. A partir daqui, pode selecionar um único ponto de dados para o alias.",
|
|
534
|
+
"tpl.showProposal": "Carregar a proposta de modelo",
|
|
535
|
+
"tpl.showProposalHelp": "Voltemos ao que o modelo propõe para este dispositivo.",
|
|
536
|
+
"tpl.skippedChip": "{0}, sem fonte",
|
|
537
|
+
"tpl.skippedEmpty": "«{0}» teria uma pontuação mais elevada, mas não cria nenhuma linha neste dispositivo — ignorado",
|
|
538
|
+
"tpl.skippedHead": "{0} não foi incluído porque falta a fonte",
|
|
539
|
+
"tpl.skippedNowhere": "{0}: nem em {1}",
|
|
540
|
+
"tpl.skippedSource": "{0}: falta o {1}",
|
|
541
|
+
"tpl.skippedWhy": "{0}: {1}",
|
|
542
|
+
"tpl.whyNoField": "{0} não tem o campo {1}",
|
|
543
|
+
"tpl.whyNoJson": "{0} não devolve nenhum JSON",
|
|
544
|
+
"tpl.whyNoPoint": "{0} não existe",
|
|
545
|
+
"tpl.whyNone": "Por que razão não se aplica nenhum modelo",
|
|
546
|
+
"tpl.whyThis": "Por que este modelo?",
|
|
547
|
+
"tpl.withoutField": "{0} sem {1}",
|
|
548
|
+
"tpl.wouldNeed": "na verdade, em falta: {0}",
|
|
549
|
+
"tpls.absolute": "objeto fixo",
|
|
550
|
+
"tpls.absoluteText": "Não está associado a um dispositivo específico e, por isso, será o mesmo para todos os dispositivos. Por vezes, isso é exatamente o que se pretende — um ponto de referência partilhado, por exemplo. Não conta para efeitos de deteção.",
|
|
551
|
+
"tpls.absoluteTitle": "Um ponto refere-se a um objeto fixo. ",
|
|
552
|
+
"tpls.andMore": "… e mais {0}, que não constam aqui",
|
|
553
|
+
"tpls.beats": "batidas {0}",
|
|
554
|
+
"tpls.buildsNone": "não corresponde — nenhuma linha tem origem",
|
|
555
|
+
"tpls.button": "Guardar como modelo …",
|
|
556
|
+
"tpls.channelName": "Canal por saída",
|
|
557
|
+
"tpls.colDefault": "Padrão",
|
|
558
|
+
"tpls.colInTemplate": "no modelo",
|
|
559
|
+
"tpls.colName": "Nome",
|
|
560
|
+
"tpls.colPath": "Caminho, relativo ao dispositivo",
|
|
561
|
+
"tpls.colRequired": "tem de existir",
|
|
562
|
+
"tpls.content": "Verificações de conteúdo",
|
|
563
|
+
"tpls.contentHelp": "Torna a deteção mais precisa — e exclui os dispositivos que não enviam esse bloco. É exatamente isto que distingue um «socket» de um «socket com medição».",
|
|
564
|
+
"tpls.contentRow": "{0} deve conter {1}",
|
|
565
|
+
"tpls.contradiction": "Este modelo não serviria para nada.",
|
|
566
|
+
"tpls.contradictionText": "Estes pontos estão listados como obrigatórios e proibidos ao mesmo tempo: {0}. Retire-os de uma das duas categorias.",
|
|
567
|
+
"tpls.deviceType": "Tipo de dispositivo",
|
|
568
|
+
"tpls.dropOff": "Omita completamente",
|
|
569
|
+
"tpls.dropOthers": "Ignore as outras saídas",
|
|
570
|
+
"tpls.droppedCount": "Faltam {0} pontos.",
|
|
571
|
+
"tpls.evidence": "{0} verificado",
|
|
572
|
+
"tpls.failed": "Falha ao guardar:",
|
|
573
|
+
"tpls.fallbacks": "+ {0} alternativa",
|
|
574
|
+
"tpls.fitsNot": "{0}× não serve",
|
|
575
|
+
"tpls.function": "Função",
|
|
576
|
+
"tpls.head": "Título",
|
|
577
|
+
"tpls.hits": "{0} dispositivos correspondentes, {1} deles ganhou",
|
|
578
|
+
"tpls.id": "Id",
|
|
579
|
+
"tpls.idTaken": "Este ID já pertence a «{0}» (v{1}). Ao guardar, este seria substituído.",
|
|
580
|
+
"tpls.json": "É isto que fica guardado",
|
|
581
|
+
"tpls.loadFailed": "os modelos próprios não foram carregados",
|
|
582
|
+
"tpls.loadFailedHint": "A configuração da instância não respondeu ou apresentou um erro. Os seus modelos não desapareceram — apenas não estão visíveis nesta vista. Enquanto este aviso estiver ativo, guardar pode substituir um modelo existente: atualize a página primeiro.",
|
|
583
|
+
"tpls.lockBadHint": "A sugestão de nome não é uma expressão válida",
|
|
584
|
+
"tpls.lockIdTaken": "O ID já pertence a «{0}»",
|
|
585
|
+
"tpls.lockNoId": "Falta o ID",
|
|
586
|
+
"tpls.lockNoRequired": "Nenhum ponto está assinalado conforme exigido — o modelo não corresponderia a nada",
|
|
587
|
+
"tpls.lockNoRows": "Não resta nenhuma linha",
|
|
588
|
+
"tpls.lockedWhy": "A gravação está bloqueada:",
|
|
589
|
+
"tpls.losesTo": "perde contra {0}",
|
|
590
|
+
"tpls.multiple": "Este dispositivo tem várias saídas",
|
|
591
|
+
"tpls.multipleHelp": "O {0} nos percursos é substituído por %N% — apenas no final de um segmento, pelo que «ENERGY.Power» permanece inalterado.",
|
|
592
|
+
"tpls.multipleNoNumber": "Indique qual dos números nos caminhos corresponde à saída. Sem essa indicação, o modelo permanece como único.",
|
|
593
|
+
"tpls.multipleOff": "Um dispositivo com POWER1, POWER2… transforma-se numa pasta com um canal por saída.",
|
|
594
|
+
"tpls.nameDe": "Nome (alemão)",
|
|
595
|
+
"tpls.nameEn": "Nome (em inglês)",
|
|
596
|
+
"tpls.nameHint": "Sugestão de nome",
|
|
597
|
+
"tpls.nameHintBad": "Não é uma expressão válida — é considerada «sem correspondência».",
|
|
598
|
+
"tpls.nameHintHelp": "Só resolve empates entre modelos que se encaixam igualmente bem — por exemplo, «luz» versus «tomada». Separe as palavras com |. Este recurso chama-se «{0}».",
|
|
599
|
+
"tpls.needsRow": "não corresponde — {0} não encontra nada",
|
|
600
|
+
"tpls.needsRowHint": "Uma linha obrigatória do modelo não encontra a sua fonte neste dispositivo — normalmente, trata-se de um campo que não existe na mensagem JSON nesse dispositivo. O modelo nem sequer entra em consideração neste caso; o próximo melhor modelo assume o seu lugar.",
|
|
601
|
+
"tpls.noFunction": "— nenhum —",
|
|
602
|
+
"tpls.noHits": "De momento, não há nenhum dispositivo correspondente. Verifique os requisitos.",
|
|
603
|
+
"tpls.noInstance": "Não foi encontrada a instância {0}.",
|
|
604
|
+
"tpls.noRequired": "Nenhum ponto está assinalado conforme exigido — o modelo não corresponderia a nada.",
|
|
605
|
+
"tpls.noType": "— nenhum —",
|
|
606
|
+
"tpls.onlyOne": "o único que serve",
|
|
607
|
+
"tpls.otherOutputs": "{0} pontos referem-se a outras saídas ({1}).",
|
|
608
|
+
"tpls.otherOutputsText": "Um modelo para várias saídas descreve sempre apenas uma — as restantes são derivadas desta. Desmarque os pontos externos no dispositivo; caso contrário, o modelo só se adaptará a este dispositivo específico.",
|
|
609
|
+
"tpls.pickDeviceFirst": "Escolha primeiro um dispositivo",
|
|
610
|
+
"tpls.rank": "Classificação",
|
|
611
|
+
"tpls.rowBuilt": "1 linha",
|
|
612
|
+
"tpls.rowsBuilt": "{0} linhas",
|
|
613
|
+
"tpls.saveAsNew": "Guardar como um novo modelo",
|
|
614
|
+
"tpls.saveAsNewHint": "o que já existe mantém-se como está",
|
|
615
|
+
"tpls.saveNew": "Guardar modelo",
|
|
616
|
+
"tpls.saveUpdate": "Atualizar modelo",
|
|
617
|
+
"tpls.saved": "O modelo «{0}» foi guardado, versão {1}.",
|
|
618
|
+
"tpls.savedWhere": "Encontra-se na configuração da instância ({0}) e, por isso, faz parte da cópia de segurança.",
|
|
619
|
+
"tpls.saving": "a guardar …",
|
|
620
|
+
"tpls.shadowsPackage": "passará então a substituir o que foi enviado",
|
|
621
|
+
"tpls.someOff": "Desmarcado no dispositivo: {0}. Estes itens vêm por predefinição desativados — no próximo dispositivo, aparecerão na lista, mas não estarão assinalados.",
|
|
622
|
+
"tpls.states": "Dados",
|
|
623
|
+
"tpls.statesCount": "{0}. deles",
|
|
624
|
+
"tpls.statesHelp": "A marca à esquerda indica se o ponto é incluído no modelo. «Padrão» é o estado com que será proposto no próximo dispositivo — que decorre da sua seleção no dispositivo. A marca à direita indica se o ponto tem de estar presente para que o modelo corresponda.",
|
|
625
|
+
"tpls.takesOver": "{0} alterar modelo",
|
|
626
|
+
"tpls.title": "Guardar como modelo — {0}",
|
|
627
|
+
"tpls.tryout": "Teste",
|
|
628
|
+
"tpls.undrop": "desfazer",
|
|
629
|
+
"tpls.updateIt": "Atualizar o modelo «{0}» — passa a ser a versão {1}",
|
|
630
|
+
"tpls.whatToDo": "O que deveria acontecer",
|
|
631
|
+
"tpls.whichNumber": "Número desta saída",
|
|
632
|
+
"tpls.wissen": "+ mais {0} estados como conhecimento de função — utilizados na vista «Todos os pontos de dados do dispositivo»",
|
|
633
|
+
"tree.aliases": "Editar alias",
|
|
634
|
+
"tree.branchAdd": "Juntar este ramo à seleção",
|
|
635
|
+
"tree.branchForeign": "Esses ramos não estão na mesma instância. Um aparelho vive numa instância — escolha ramos com um nó-pai comum.",
|
|
636
|
+
"tree.branchHint": "Alguns adaptadores dividem um aparelho por ramos vizinhos — o Matter põe o interruptor num e as medições noutro. Vários ramos formam juntos um aparelho. O mesmo que Ctrl+clique.",
|
|
637
|
+
"tree.branchRemove": "Retirar este ramo da seleção",
|
|
638
|
+
"tree.collapseAll": "ocultar tudo",
|
|
639
|
+
"tree.emptyNode": "sem registos — o nó existe na base de dados, mas está vazio",
|
|
640
|
+
"tree.expandAll": "expandir tudo",
|
|
641
|
+
"tree.exportMock": "Exportar como dispositivo fictício",
|
|
642
|
+
"tree.exportMockHint": "Grava tudo abaixo de {0} num ficheiro: objetos e valores atuais, sem native",
|
|
643
|
+
"tree.filter": "filtro …",
|
|
644
|
+
"tree.filterAria": "Filtrar objetos",
|
|
645
|
+
"tree.importMock": "Importar dispositivo fictício …",
|
|
646
|
+
"tree.importMockHint": "Vai sempre parar a {0} — nunca ao caminho original",
|
|
647
|
+
"tree.loading": "a carregar objetos …",
|
|
648
|
+
"tree.looksLikeDevice": "parece ser um único dispositivo",
|
|
649
|
+
"tree.noObjectHint": "não é uma pasta verdadeira",
|
|
650
|
+
"tree.nothingFound": "não foi encontrado nada",
|
|
651
|
+
"tree.sourceGone": "{0} ponto(s) deste alias remetem para uma fonte que não existe. O js-controller guarda esta informação de forma permanente — a única solução é eliminar e recriar.",
|
|
652
|
+
"tree.sources": "Criar um alias",
|
|
653
|
+
"tree.templates": "Modelos",
|
|
654
|
+
"tv.addFallback": "Adicionar fonte alternativa",
|
|
655
|
+
"tv.addState": "Adicionar ponto de dados",
|
|
656
|
+
"tv.badContent": "«erkennung.inhalt» tem de ser um objeto.",
|
|
657
|
+
"tv.badList": "«{0}» deve ser uma lista de pontos.",
|
|
658
|
+
"tv.badName": "O nome deve ser uma cadeia de caracteres ou um objeto de linguagem.",
|
|
659
|
+
"tv.badNameHint": "A sugestão de nome não é uma expressão válida.",
|
|
660
|
+
"tv.badNoId": "Falta o ID.",
|
|
661
|
+
"tv.badNoStates": "Faltam os dados (zustaende).",
|
|
662
|
+
"tv.badNotObject": "É esperado um único modelo na forma de um objeto JSON.",
|
|
663
|
+
"tv.badRecog": "«erkennung» tem de ser um objeto.",
|
|
664
|
+
"tv.badState": "{0} pontos de dados sem nome ou sem qualquer caminho de leitura ou escrita.",
|
|
665
|
+
"tv.badType": "Este detetor não reconhece o tipo de dispositivo «{0}».",
|
|
666
|
+
"tv.clickRow": "Clique numa linha para editar o valor",
|
|
667
|
+
"tv.clickRowRead": "Clique numa linha para a visualizar — os modelos já enviados não podem ser alterados.",
|
|
668
|
+
"tv.delete": "Apagar",
|
|
669
|
+
"tv.deleteHint": "Se sobrepor a um modelo enviado, esse modelo volta a aparecer posteriormente.",
|
|
670
|
+
"tv.deleteSure": "Apagar mesmo",
|
|
671
|
+
"tv.detection": "Detecção",
|
|
672
|
+
"tv.discard": "Ignorar alterações",
|
|
673
|
+
"tv.duplicate": "Duplicado",
|
|
674
|
+
"tv.export": "Exportar como ficheiro",
|
|
675
|
+
"tv.fallback": "Fontes alternativas",
|
|
676
|
+
"tv.fallbackHint": "Se o ambiente de trabalho não conseguir encontrar o ponto de dados acima — ou o campo que nele se encontra —, tenta estas opções por ordem. É utilizado o primeiro em que ambos existam realmente.",
|
|
677
|
+
"tv.flagsHelp": "«Padrão» = pré-marcado no dispositivo seguinte. «Deve existir» = sem este ponto, o modelo não corresponde de todo — passa para a lista de requisitos acima. «Objeto fixo» = o caminho de leitura não é relativo ao dispositivo, mas sim um identificador completo do objeto, o mesmo para todos os dispositivos.",
|
|
678
|
+
"tv.forbidden": "Não deve existir",
|
|
679
|
+
"tv.forbiddenHelp": "Estes pontos NÃO podem estar presentes no dispositivo; caso contrário, o modelo não corresponde. É isto que distingue uma tomada simples de uma tomada múltipla. Separe os vários pontos com vírgulas. Os pontos ausentes não contam como prova.",
|
|
680
|
+
"tv.hide": "ocultar",
|
|
681
|
+
"tv.importAndSave": "Importar e guardar",
|
|
682
|
+
"tv.importBad": "Este ficheiro não é um modelo.",
|
|
683
|
+
"tv.importFile": "Importar …",
|
|
684
|
+
"tv.importNew": "Ao guardar, é criado um «{0}».",
|
|
685
|
+
"tv.importReplaces": "Ao guardar, o seu modelo «{0}» é substituído — a versão {1} passa a ser a versão {2}.",
|
|
686
|
+
"tv.importShadows": "Guardar sombras no modelo fornecido «{0}».",
|
|
687
|
+
"tv.importTitle": "Ainda não foi guardado nada.",
|
|
688
|
+
"tv.imported": "importado",
|
|
689
|
+
"tv.inTemplate": "no modelo",
|
|
690
|
+
"tv.json": "O modelo em formato JSON",
|
|
691
|
+
"tv.makeOwn": "Criar uma cópia editável",
|
|
692
|
+
"tv.multi": "várias saídas, um canal {0} por saída",
|
|
693
|
+
"tv.nameHintShort": "Apenas resolve empates entre modelos que se adequam igualmente bem. Separe as palavras com |.",
|
|
694
|
+
"tv.package": "enviado",
|
|
695
|
+
"tv.packageText": "Não pode ser editado, pelo que permanece sempre no estado em que foi entregue. A opção «Duplicar» cria uma cópia do seu próprio ficheiro, e essa cópia funciona como um «sombra» do original.",
|
|
696
|
+
"tv.packageTitle": "Modelo enviado.",
|
|
697
|
+
"tv.paneHead": "O modelo e o que ele capta",
|
|
698
|
+
"tv.rank": "classificação {0}",
|
|
699
|
+
"tv.rankOwn": "A classificação serve apenas para distinguir entre os teus próprios modelos. Contra um modelo fornecido de fábrica, o teu ganha sempre — não precisa de uma classificação elevada para isso.",
|
|
700
|
+
"tv.rankPackage": "A classificação apenas distingue os modelos enviados e, mesmo nesse caso, só quando as provas e a pista sobre o nome forem iguais.",
|
|
701
|
+
"tv.readOnlyRow": "Modelo fornecido — utilize a opção «Cópia própria para edição» para o alterar.",
|
|
702
|
+
"tv.removeFallback": "remover",
|
|
703
|
+
"tv.removeState": "Eliminar este ponto",
|
|
704
|
+
"tv.required2": "Tem de existir",
|
|
705
|
+
"tv.requiredCount": "{0} pontos necessários",
|
|
706
|
+
"tv.requiredHelp": "Estes dados têm de estar presentes no dispositivo; caso contrário, o modelo não corresponde. Separe os vários dados com vírgulas. Cada dado obrigatório torna o modelo mais preciso e, ao mesmo tempo, mais frágil.",
|
|
707
|
+
"tv.save": "Guardar",
|
|
708
|
+
"tv.show": "mostrar",
|
|
709
|
+
"tv.unsaved": "não guardado",
|
|
710
|
+
"use.again": "ler novamente",
|
|
711
|
+
"use.aliasHead": "O pseudónimo",
|
|
712
|
+
"use.custom": "Registo, nomes inteligentes",
|
|
713
|
+
"use.enums": "Enumerações",
|
|
714
|
+
"use.files": "Ficheiros",
|
|
715
|
+
"use.head": "Referenciado em",
|
|
716
|
+
"use.limits": "A pesquisa é em texto simples. Apenas os ficheiros nas pastas das instâncias (vis.0, vis-2.0, web.0 …) — as interfaces web próprias dos adaptadores ficam de fora, caso contrário, o ambiente de trabalho encontraria os seus exemplos e os seus próprios ficheiros-fonte. Os valores de estado não são pesquisados e nenhuma pesquisa de texto encontra IDs criados em tempo de execução.",
|
|
717
|
+
"use.look": "procura isso",
|
|
718
|
+
"use.lookHint": "Pesquisas pela ID do alias e da sua origem — nos scripts, nas enumerações, nas entradas do próprio ponto, em todos os objetos carregados e nos ficheiros das pastas da instância. Realizadas apenas ao clicar, uma vez que tudo é lido uma única vez para esse efeito.",
|
|
719
|
+
"use.none": "—",
|
|
720
|
+
"use.objects": "Objetos",
|
|
721
|
+
"use.otherAliases": "outros pseudónimos nele",
|
|
722
|
+
"use.scripts": "Guiões",
|
|
723
|
+
"use.searching": "a procurar …",
|
|
724
|
+
"use.sourceHead": "A fonte",
|
|
725
|
+
"use.sourceHint": "O facto de uma fonte continuar a ser mencionada não constitui um erro: o script que a alimenta deve estar exatamente ali. A decisão de se um elemento deve ser movido para o alias só se toma após análise do caso.",
|
|
726
|
+
"write.aliasNowAt": "O alias está agora em {0}.",
|
|
727
|
+
"write.cannotWrite": "Não se pode escrever assim:",
|
|
728
|
+
"write.changes": "alterações",
|
|
729
|
+
"write.close": "Fechar",
|
|
730
|
+
"write.createAlias": "Criar um alias …",
|
|
731
|
+
"write.createAll": "Criar todos os {0} …",
|
|
732
|
+
"write.createAsOne": "criar como um único dispositivo …",
|
|
733
|
+
"write.createNamed": "Criar {0} …",
|
|
734
|
+
"write.createPerChannel": "uma subpasta por canal, {0} delas …",
|
|
735
|
+
"write.createSendPoints": "Criar os {0} pontos de dados de envio em falta",
|
|
736
|
+
"write.deselected": "desmarcado",
|
|
737
|
+
"write.diffNew": "depois de",
|
|
738
|
+
"write.diffOld": "antes",
|
|
739
|
+
"write.diffRaw": "mostrar a ordem original",
|
|
740
|
+
"write.diffSorted": "campos de ordenação",
|
|
741
|
+
"write.diffSortedHint": "A ordem dos campos dentro de um objeto não tem qualquer significado — o mesmo administrador cria objetos alias em quatro ordens diferentes. Quando ordenados, apenas as diferenças reais permanecem; a ordem original mostra como o objeto está, de facto, armazenado.",
|
|
742
|
+
"write.done": "{0} objetos gravados.",
|
|
743
|
+
"write.doneWithRemoved": "{0} objetos gravados, {1} removidos.",
|
|
744
|
+
"write.dryOutputs": " — {0} saídas",
|
|
745
|
+
"write.dryTitleCreate": "Criar alias — isto é o que apareceria",
|
|
746
|
+
"write.dryTitleDoneCreate": "Alias criado",
|
|
747
|
+
"write.dryTitleDoneUpdate": "Alias atualizado",
|
|
748
|
+
"write.dryTitleFailed": "Nem tudo correu como previsto",
|
|
749
|
+
"write.dryTitleUpdate": "Atualizar alias — isto é o que apareceria",
|
|
750
|
+
"write.duplicateName": "{0}: o nome aparece duas vezes.",
|
|
751
|
+
"write.enumsUnknown": "O campo «Room» e a função não serão definidos: não foi possível carregar as enumerações. O próprio alias é criado conforme indicado. Sem um estado fiável, uma enumeração existente seria substituída por uma nova que contivesse apenas este único membro.",
|
|
752
|
+
"write.failed": "{0} operações falharam:",
|
|
753
|
+
"write.new": "novo",
|
|
754
|
+
"write.noName": "Um ponto não tem nome.",
|
|
755
|
+
"write.noSourceChosen": "{0}: não foi selecionada nenhuma fonte.",
|
|
756
|
+
"write.noneSelected": "Não foi selecionado nenhum ponto de dados.",
|
|
757
|
+
"write.notInProposal": "não consta da proposta",
|
|
758
|
+
"write.notUnderAlias": "{0} não está abaixo de «alias». — nada será escrito aqui",
|
|
759
|
+
"write.now": "Criar agora",
|
|
760
|
+
"write.nowUpdate": "Atualizar agora",
|
|
761
|
+
"write.pickDeviceFirst": "Escolha primeiro um dispositivo",
|
|
762
|
+
"write.remove": "Remover",
|
|
763
|
+
"write.removeCount": "pontos de dados: {0}",
|
|
764
|
+
"write.removeHint": "existem no alias, mas já não aparecem no rascunho",
|
|
765
|
+
"write.retry": "Tenta novamente",
|
|
766
|
+
"write.rowSource": "fonte",
|
|
767
|
+
"write.rowTarget": "alvo",
|
|
768
|
+
"write.sourceMissing": "{0}: a fonte {1} não existe.",
|
|
769
|
+
"write.summaryTail": "{0} novos, {1} seria substituído",
|
|
770
|
+
"write.summaryTail3": "{0} novas, {1} alteração, {2} inalteradas",
|
|
771
|
+
"write.unchanged": "inalterado",
|
|
772
|
+
"write.updateAlias": "Atualizar alias …",
|
|
773
|
+
"write.updateAsOne": "atualizar como um único dispositivo …",
|
|
774
|
+
"write.updateNamed": "Atualização {0}…",
|
|
775
|
+
"write.willKeep": "mantido: {0}",
|
|
776
|
+
"write.willRemove": "eliminados: {0}",
|
|
777
|
+
"write.writeSourceMissing": "{0}: o ponto de dados de envio {1} ainda não existe",
|
|
778
|
+
"write.writing": "a escrever …"
|
|
14
779
|
}
|