La colonna personalizzata in una visualizzazione di visualizzazione elenco per un sito multilingue non assume etichette personalizzate.Rimane in lingua predefinita

sharepoint.stackexchange https://sharepoint.stackexchange.com//questions/98155

Domanda

Ho ciò che finora sembra essere un problema abbastanza unico. Stiamo eseguendo un ambiente multilingue di SharePoint 2010 con l'inglese come lingua predefinita e francese come secondario. Abbiamo configurato i siti in una relazione di varianza, ma il problema che sto discutendo succede al di fuori di una variante pure.

Abbiamo creato una libreria al di fuori della variante (ma all'interno della collezione) che i due siti devono condividere. Un elenco View Web Part è stato creato tramite Designer per aggiungere a ciascun sito per fornire una vista rapida nell'elenco. Se siamo in Libary e passiamo in francese, quindi aggiorna l'etichetta della colonna ricorderà l'impostazione (a causa del file delle risorse) e la manterrà poiché la lingua viene capovolta e avanti. Dove non funziona è come una parte web in una variante o dove la lingua è diversa.

Se la lingua è diversa, le colonne fuori dalle scatole funzionano, ma le colonne personalizzate (tutte le colonne del sito non sono le colonne della libreria \ list) rimangono come l'etichetta inglese. Non importa se entro una variante o all'esterno con il linguaggio del browser è cambiato. Ritorna sempre in inglese. È come se non stia usando lo stesso file di risorse che è stato utilizzato nell'elenco stesso.

Ho creato una vista personalizzata e la modifica con XSLT come da Come modificare il titolo della colonna per una vista, ma non modificare l'elenco? Ma questo funzionava solo all'interno dell'elenco e non si è verificato nella visualizzazione Elenco. Non posso essere il primo che l'ha incontrato, o non sto eseguendo correttamente le mie ricerche, nessuno ha mai documentato una soluzione per questo o questo è qualcosa che non possiamo solo sistemare con gli strumenti OOTB. Questa è l'altra cosa, la soluzione deve essere eseguita OOTB o con modifiche secondarie minori del client. Non riesco a rafforzare Visual Studio perché stanno pilotando ufficio 365 e hanno messo un mandato "Nessun codice personalizzato" per la migrazione (che è reale per me. Mi piace il mio codice; P).

Grazie con tutti in anticipo.

È stato utile?

Soluzione

Ok, I have come up with a solution. I edited the XSLT for the web part on the page. I did the following:

  1. Create the variants in the Site Ccollection
  2. Create the library outside of the variants.
  3. Add all the columns you require for the library. It is very important all the columns are there before you move on.
  4. Create a French and English view.
  5. Create the list view web part via designer.
  6. Add the list view web part to each site selecting the appropriate view to use.
  7. Edit the page in SharePoint Designer 2010.
  8. Place cursor in the column you wish to modify.
  9. Click Design in the List View Tools on the ribbon.
  10. Then click Customize XSLT and select Customize Item. Select this option otherwise you will generate a LOT of unnecessary XSL code.
  11. You are looking for a piece that resembles the following:

    <xsl:with-param name="fieldtitle">
      <xsl:value-of select="@DisplayName"/>
    </xsl:with-param>
    
  12. Modify it by typing in the actual column name you want. You should end up with something like this:

    <xsl:with-param name="fieldtitle">
      New Column Name.
    </xsl:with-param>
    
  13. Now, for this page only, the column will be renamed.

There are some caveats:

  1. Doesn’t appear to work in a publishing portal. I think this has to do with how SP stores the pages in this case. In a publishing portal you can only modify the page layout which won’t work as we need to modify the content.
  2. If you add another column, you will need to repeat the XSLT modification

Anyways, I hope this helps out any others with the same issue or need as I had.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a sharepoint.stackexchange
scroll top